- 論壇徽章:
- 0
|
{:3_191:}好久沒有寫了,生疏了:
- 第一題:sub myfunc {
- # $x = ...;
- if ( $x ) {
- return 1;
- } else {
- return;
- }
- }
- 答:精簡為:
- sub myfunc{
- $x?return 1:return;
- }
- 第二題:
- $x=()結(jié)果是什么?列表位于標量上下文是什么情況?()是不是用來創(chuàng)建空的list?請解釋原因。
- 答:
- $x=()設(shè)置為undef,這句可以清空$x中存放的引用值、對象等等,一般用來釋放
- 列表位于標量上下文返回是元素個數(shù)
- ()可以用來創(chuàng)建空的list, ((),(),())=()
- 第三題:1,2,3,5,6,7,8 如何合并成1-3,5-8?
- 答:
- my @array=(1,2,3,5,6,7,8);
- my $head=shift @array;
- my $mid=$head;
- my @resume;
- while (@array){
- my $x=shift @array;
- if ($x-1==$mid){
- $mid=$x;
- }else{
- push @resume,$head."-".$mid;
- $head=$x;
- $mid=shift @array;
- }
- push @resume,$head."-".$x unless (@array);
- }
- print join(",", @resume);
-
- 第四題:@x=(5,7,9); $x[1]與@x[1]的區(qū)別是什么?
- 答:
- $x[1]是指 @x數(shù)組中第二個元素,返回是一個值
- @x[1]是包含數(shù)組片段 $x[1]的數(shù)組,返回的是個數(shù)組
- 第五題: 用最短和優(yōu)的perl代碼對當前目錄下的文件和子目錄按修改時間進行排序。
- print join "\n", ( sort {(-M $a)<=>(-M $b)} grep{ $_ ne ".."} (glob("*"),glob(".?*")));
- 第六題 傳入一串數(shù)字并返回所有大于平均值的數(shù)字。
- 答:
- my @k=split ",",shift;
- my $resume;
- my $n=0;
- foreach my $i(@k){
- $n++;
- $resume=$resume+$i;
- }
- $resume=$resume/$n;
- my @rr=grep { $_ >$resume} @k;
- print Dumper \@rr;
- 第七題:
- 答:
- my ($k,$i);
- print "please input the number:";
- while ($i=<STDIN>){
- chomp $i;
- $k=int(1+rand 100);
- print "the randam is $k \n";
- exit if ($i eq "quit") or ($i eq "exit") or ($i =~/^\s+$/);
- next if ($i !~/\d+/);
- $i>$k? print "too high\n": print "too low\n";
- print "right, you are hero~\n";exit if $i== $k;
- next;
- }
復(fù)制代碼 |
|