免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 无风之谷

ChinaUnix技术实践之三——Perl编程大赛 [复制链接]

论坛徽章:
0
发表于 2011-02-24 18:11 |显示全部楼层
本帖最后由 xfoucs 于 2011-02-26 21:59 编辑

回复 9# xfoucs


    3. 1,2,3,5,6,7,8 如何合并成1-3,5-8?
这道题也不会。。。


------------------------------------------------
4.@x=(5,7,9); $x[1]与@x[1]的区别是什么?
#########################################
$x[1]是数组第二个元素标量7
@x[1]是数组切片后的只含一个元素7的列表

刚看完 learning perl 。。。

#########################################

论坛徽章:
7
巳蛇
日期:2014-04-10 08:54:57白羊座
日期:2014-04-22 20:06:262015年亚洲杯之沙特阿拉伯
日期:2015-02-10 14:18:532015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之吉达阿赫利
日期:2015-06-02 11:34:112015亚冠之武里南联
日期:2015-06-24 12:13:082015亚冠之阿尔纳斯尔
日期:2015-08-03 09:08:25
发表于 2011-02-24 18:41 |显示全部楼层
5.

  1. #!/usr/bin/env perl

  2. use 5.12.0;

  3. my @sorted = map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { [-M $_, $_] } glob "*";
  4. say join "\t", @sorted;
复制代码

论坛徽章:
7
巳蛇
日期:2014-04-10 08:54:57白羊座
日期:2014-04-22 20:06:262015年亚洲杯之沙特阿拉伯
日期:2015-02-10 14:18:532015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之吉达阿赫利
日期:2015-06-02 11:34:112015亚冠之武里南联
日期:2015-06-24 12:13:082015亚冠之阿尔纳斯尔
日期:2015-08-03 09:08:25
发表于 2011-02-24 18:45 |显示全部楼层
第8题 Socket 编程,从来没去管过。嗯,还有很多其他事情要做,就不去翻资料了,这题弃权。

论坛徽章:
0
发表于 2011-02-24 20:47 |显示全部楼层
第六 七题好像是learning perl 里面的原题啊

论坛徽章:
0
发表于 2011-02-24 21:50 |显示全部楼层
全是高手啊,俺进来走个场

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
发表于 2011-02-25 08:34 |显示全部楼层
本帖最后由 rubylc_unix 于 2011-02-25 09:29 编辑

系统环境:
              This is perl, v5.10.1 (*) built for i486-linux-gnu-thread-multi
              Copyright 1987-2009, Larry Wall


4.当我们从数组获得元素值的时候,需要使用$,因为我们只要获取数组里的一个值;你请求一个标量,然后会获得一个标量。
   如果从数组里获取多个值,使用@,因为我们要获取数组里的几个值(列表),这叫“数组切片”。
   $x[1]和@x[1]都是取数组中的第二个元素,但是因为$和@的不同,一个是取一个数时用的,一个是取一组数时用的,虽然该题目只取一个数字。

论坛徽章:
0
发表于 2011-02-25 10:17 |显示全部楼层
perl新人,哈哈!~!

第1道题



  1. sub myfunc {

  2.         return 1 if $x ;

  3. }
复制代码

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
发表于 2011-02-25 10:48 |显示全部楼层
唉。没看到。马上参加。对了C++的还没有平出来啊。

论坛徽章:
0
发表于 2011-02-25 11:19 |显示全部楼层
第六道题:
  1. #!/usr/bin/perl

  2. use warnings;

  3. print "Enter some number,a number per line and type CTL+d to end:\n";

  4. chomp(@numbers = <STDIN>);

  5. foreach  (@numbers) {
  6.        $sum += $_ ;
  7. }

  8. print "The number are : \n",join ",",grep { $_ > $sum / ($#numbers + 1) } @numbers;
  9. print "\n";
复制代码
不练练 就忘记啦~!!

论坛徽章:
0
发表于 2011-02-25 11:38 |显示全部楼层
第7道题:
  1. #!/usr/bin/perl

  2. use warnings;
  3. use strict;

  4. my $random_number = int( 1 + rand 100 );

  5. print "Please guess a number between 1 and 100: ";
  6. while (<STDIN>) {
  7.         last if /quit|exit/i;
  8.         print "Too high\n" if $_ > $random_number ;
  9.         print "Too low\n" if $_ < $random_number ;
  10.         if ($_ == $random_number) {
  11.                 print "Your guess it.\n";
  12.                 last;
  13.         }
  14. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP