Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是示例。出于某种奇怪的原因,Perl 认为这1 and 0是一个真正的价值。为什么?
1 and 0
$ perl -e '$x = 1 and 0; print $x;' 1
因为 和 的优先级and不同&&:
and
&&
$x = 1 and 0是喜欢($x = 1) and 0,而是$x = 1 && 0喜欢$x = (1 && 0)。
$x = 1 and 0
($x = 1) and 0
$x = 1 && 0
$x = (1 && 0)
参见perlop(1)。
您的示例中的运算符优先级是
perl -e '($x = 1) and 0; print $x;'
而你想要的是:
perl -e '$x = (1 and 0); print $x;'
或者
perl -e '$x = 1 && 0; print $x;'
它没有:
$ perl -e '$x = (1 and 0); print $x;' 0