相关疑难解决方法(0)

如果perl是逐个引用的,为什么会发生这种情况呢?

我已经读过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吗?

perl pass-by-reference evaluation-strategy call-by-value

0
推荐指数
1
解决办法
312
查看次数