lot*_*ths 5 arrays perl foreach max
我是Perl的新手,我不想使用List :: Util max函数来查找给定数组的最大值.
当我测试下面的代码时,它只返回数组的第一个值,而不是最大值.
sub max
{
my @array = shift;
my $cur = $array[0];
foreach $i (@array)
{
if($i > $cur)
{
$cur = $i;
}
else
{
$cur = $cur;
}
}
return $cur;
}
Run Code Online (Sandbox Code Playgroud)
更换
my @array = shift;
Run Code Online (Sandbox Code Playgroud)
同
my @array = @_;
Run Code Online (Sandbox Code Playgroud)
@_是包含所有函数参数的数组.shift只抓取第一个函数参数并将其从@_中删除.更改该代码,它应该正常工作!