我已经读过perl在执行subrutines时使用call-by-reference.我制作了一段简单的代码来检查这个属性,但它的行为就像perl是按值调用:
$x=50;
$y=70;
sub interchange {
($x1, $y1) = @_;
$z1 = $x1;
$x1 = $y1;
$y1 = $z1;
print "x1:$x1 y1:$y1\n";
}
&interchange ($x, $y);
print "x:$x y:$y\n";
Run Code Online (Sandbox Code Playgroud)
这会产生以下输出:
$ perl example.pl
x1:70 y1:50
x:50 y:70
Run Code Online (Sandbox Code Playgroud)
如果参数以逐个引用的方式处理,x不应该等于x1而y等于y1吗?