特殊数组 ,@_
其中存在传递给函数的所有参数,实际上是传递参数的别名。因此,我们直接对这个特殊数组所做的任何更改也@_
将反映在 main 中。这很清楚。
#!/usr/bin/perl
use warnings;
use strict;
$\="\n";
sub func {
print \@_;
$_++ for(@_);
}
my @arr=(2..4);
print \@arr;
func(@arr);
print "@arr";
对于上面的程序,我希望 和 的引用@arr
指向@_
同一个位置,因为它是一个别名。但事实并非如此。
在运行上述:
ARRAY(0x1b644d0)
ARRAY(0x1b644e0)
3 4 5
如果他们指向 2 个不同的位置,所做的更改如何@_
反映在@arr
?
我看错了吗?请指教。