下面是我这几天学习perl写的练习。
use strict;
sub total {#求和的子例程
my $sum = 0;
foreach (@_) {
$sum += $_;
}
return $sum;
}
sub average {#求平均的子例程
return total(@_)/$#_;
}
sub who_is_greater{#求比平均大的数的子例程
my $average = average(@_);
my @answer;
foreach (@_) {
if ($_ > $average) {
push @answer,$_;
push @answer," ";
}
}
return @answer;
}
my @in = (1..10);
my @answer = who_is_greater(@in);
print @answer;
========================================================================================================
use strict;
sub max {#求最大值的子例程
my($isMax) = shift @_;
foreach(@_){
if($isMax < $_){
$isMax = $_;
}
}
$isMax;
}
my @lines = qw {1 23 43 4323 32423423};
my $s = &max;
print $s,@lines;
===================================================================
use strict;
chomp(my $w = <STDIN>);
chomp(my @lines = <STDIN>);
print "1234567890" x (($w+9)/10),"\n";
my $format = "%${w}s\n" x @lines;
printf $format,@lines;
这是书上的一个例题
==========================================================================================================
use strict;
if (! open LOG,">logfile") {
die "can't open logfile:$!";
}
print LOG "error!!!!";
close LOG;
if(! open LOG,"<logfile") {
die "";
}
while(<LOG>) {
chomp;
print $_;
}
close LOG;
文件i/o操作
=================================================================================================================
chomp($x = <STDIN>);
chomp($n = <STDIN>);
if($n <=0) {
$n *= -1;
}
$i = 1;
$sum = 0;
$temp = $x;
while($i <= $n){
$sum += $temp;
$i++;
$temp = $temp*($x/$i);
}
print "sum is:$sum";
用来计算
x+x/2!+...+x/n!的值