为什么数组在子程序的开头移位?
sub max {
my($max_so_far) = shift @_;
foreach (@_) {
if ($_ > $max_so_far) {
$max_so_far = $_;
}
}
$max_so_far;
}
只是给 $max_so_far 一个初始值吗?该程序运行完全相同
my($max_so_far) = undef;
是否有特定的理由将数组转移到开头?(我问是因为我花了大约 10 分钟试图弄清楚为什么这种转变对子程序至关重要。)