正在学 Perl 有个问题向大家请教
sub f {
shift @_;
print "@_
";
foreach (@_) {
++$_;
}
print "@_
";
}
my @x = (1, 2, 3, 4, 5, 6);
f(@x);
print "@x
";
输出是
2 3 4 5 6
3 4 5 6 7
1 3 4 5 6 7
函数参数作为引用,那为啥最后输出是 1 3 4 5 6 7,而不是 3 4 5 6 7
我的理解@_ 类似 C 中的一个二级指针 void **p,对 (**p) 赋值会改变参数的值,改变 (*p) 则不改变参数的值,不知道是不是这样?