Learning Perl
#!/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";
页:
[1]