- 论坛徽章:
- 0
|
程序如下:这几个子程序是要实现:当给定一个包含多个数字的列表时,返回其中大于这些数的平均值的函数。
但是当我写完程序后,
#!/usr/bin/perl -w
sub total {
my $sum =0;
foreach ( @_ ) {
$sum += $_;
}
return $sum;
}
sub average {
if (@ == 0) {
return
}
my $n = @_;
my $sum = total (@_);
$sum/$n;
}
sub above_average {
my $average = average ( @_ );
my @list;
foreach my $element ( @_ ) {
if ($element > $average) {
push @list,$element;
}
}
@list;
}
my @fred = above_average(1..10);
print "\@fred is @fred\n";
print "( Should be 6 7 8 9 10 )\n";
执行过程中提示我Use of uninitialized value in numeric gt (>) at ./test430 line 21.
也就是在 if ($element > $average) {这个行,有一个变量没有初始化,我找了半天,也没找出问题所在。
也许很简单,所以请perl大师们解答下。
这个是perl入门书里的课后习题!呵呵! |
|