我收到一条错误消息“全局符号“@ arr1”需要显式的程序包名称..“。
我四处搜寻,发现需要用“my”声明变量。
但就我而言,我不明白为什么我要为这个数组弄错了,正如我所定义的
my ($arr1, $arr2) = @_;
错误指向:
$#arr1 = $nLen;
$#arr2 = $nLen;
这是我的代码:
sub azip{
my ($arr1, $arr2) = @_;
if (@$arr1 != @$arr2) {
print "Arrays \@$arr1 and \@$arr2 are not equal!\n";
my $nLen;
if (@$arr1 > @$arr2) {
$nLen = @$arr2 - 1;
$#arr1 = $nLen;
}
else {
$nLen = @$arr1 - 1;
$#arr2 = $nLen;
}
}
}
最佳答案
由于$arr1
是数组引用,因此您可以尝试
$#$arr1 = $nLen; # or $#{ $arr1 }
和
$#$arr2 = $nLen;
关于perl - perl(语法错误)-全局符号 “@arr1”需要明确的软件包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22414461/