perl - 在 Perl 中, ||运算符(operator)工作?

标签 perl

所以这里是

$y = 0 | 2 | 4;  # answer is  6

$x = 0 || 2 || 4;  # answer is 2

我知道为什么 $y6因为它使用的是 OR每个数字和 2 | 4 = 6 上的运算符但对于 $x ...

为什么是这样2 ?

最佳答案

因为 2 是第一个非假项和逻辑 OR 短路。它计算 0 是假的,然后 2 不是假的,所以它完成并返回 2。考虑以下示例的输出:

$val = 1;
sub a_proc {
    print "a_proc: ", $val++, "\n";
    1;
}
$another_val = &a_proc || &a_proc;

这将输出 a_proc: 1 .尽快a_proc返回一个真值,解释器可以停止评估,因为 true 的逻辑 OR任何值都是 true .

关于perl - 在 Perl 中, ||运算符(operator)工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6052247/

相关文章:

arrays - 将哈希切片传递给需要数组引用的子例程

在 Windows 7 上使用 Apache 2.2 的 Git 服务器设置

perl - Perl 中单引号和双引号有什么区别?

perl - 如何将传递的数组引用直接移到数组?

perl - 我如何使用 Perl6::Form 的引用?

arrays - 使用 perl 动态显示列中的数组内容

perl - 在 Perl 的单元测试期间提示用户

perl - LWP::UserAgent 请求方法的真正超时

perl - 如何根据年龄删除 Perl 散列或数组项?

PERL Email::Send::Gmail 无法连接到 Windows 7 上的 Gmail 帐户