#!/usr/bin/perl #3.1recat.pl #把提供的内容反序输出,与cat命令相反的功能。 @line=(<STDIN>); @reline = reverse @line; print @reline; #另一个方法: #print reverse (<STDIN>);
===============
#!/usr/bin/perl #3.2array.pl @arr = qw/ fred betty barney dino wilma pebbles bamm-bamm /; chomp (@num = <STDIN>); foreach (@num){ print "@arr[$_-1]" , "\n"; }
===================
#!/usr/bin/perl #3.3sortArr.pl #显示在同一行 chomp (@arr = <STDIN>); @sorted = sort @arr; print "@sorted\n"; #print sort <STDIN>;每行分开显示的做法
=============================
#!/usr/bin/perl #4.1totalroutine.pl sub total{ my $sum=0; foreach (@_){ #@_ 是形式参数的内置默认变量 $sum += $_; #$_ 是循环的内置默认变量 } $sum; } my @fred = qw /1 3 5 7 9 /; my $fred_total = &total(@fred); print "数组\@fred求各的结果为:$fred_total \n"; print "请输入需要求和的数字,每行一个:\n"; my $user_total = &total(<STDIN>); print "求和的结果为:$user_total\n"; @arr = 1..1000; #过程的调用不可以放在双引号内!!! #这样调用也行:&total(1..1000) print "1到1000的求和结果为:",&total(@arr) , "\n";
============================
#!/usr/bin/perl #4.2routine.pl sub total{ my $sum=0; foreach (@_){ #@_ 是形式参数的内置默认变量 $sum += $_; #$_ 是循环的内置默认变量 } $sum; } sub avg{ my $sum = &total(@_); my $avarge = $sum / @_ ; $avarge; } sub above_average{ my $average = &avg(@_); my @list; foreach $element (@_){ if($element > $average){ push @list,$element; } } @list; } print &avg(8, 9 ,10) , "\n"; @abolist = &above_average(1..10); print "above arerage: @abolist \n";