关于perl的一个程序,出错.
来源:百度知道 编辑:UC知道 时间:2024/05/15 16:06:34
我写了一个perl程序,出现了错误,但又不知道为什么,请请教大家.
use warnings;
use strict;
my @fred=&above_average(1..10);
print"\@fred is @fred\n";
print"(Should be 6 7 8 9 10)\n";
my @barney=&above_average(100,1..10);
print"\@barney is @barney\n";
print"(Should be just 100)\n";
sub return_average{
my(@number)=@_;
my($average)=0;
foreach(0..$#number)
{
$average+=$number[$_];
)
$average=$average/($#number+1);
}
sub above_average{
my(@number)=@_;
my($average)=&return_average(@number);
my(@return_result)=undef;
my($num)=0;
foreach(0..$#number)
{
if($number[$_]>$average)
{
$return_result[$num]=$number[$_];
$num+=1;
}
else
{
$_+=1;
}
}
@return_result;
}
其中$average=$a
use warnings;
use strict;
my @fred=&above_average(1..10);
print"\@fred is @fred\n";
print"(Should be 6 7 8 9 10)\n";
my @barney=&above_average(100,1..10);
print"\@barney is @barney\n";
print"(Should be just 100)\n";
sub return_average{
my(@number)=@_;
my($average)=0;
foreach(0..$#number)
{
$average+=$number[$_];
)
$average=$average/($#number+1);
}
sub above_average{
my(@number)=@_;
my($average)=&return_average(@number);
my(@return_result)=undef;
my($num)=0;
foreach(0..$#number)
{
if($number[$_]>$average)
{
$return_result[$num]=$number[$_];
$num+=1;
}
else
{
$_+=1;
}
}
@return_result;
}
其中$average=$a
sub return_average {
my(@number)=@_;
my($average)=0;
foreach(0..$#number){
$average += $number[$_];
}
$average = $average / ($#number+1);
}
你那个 foreach 闭合括号写错了!
就是少了一个右括号,说是在第35行,但是哪一个地方都有可能,你自己仔细找一下就ok了!