サブルーチンを実行するときに perl が 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";
これにより、次の出力が生成されます。
$ perl example.pl
x1:70 y1:50
x:50 y:70
引数が参照渡しの方法で処理された場合、x は x1 と等しく、y は y1 と等しくなるべきではありませんか?