6

これがサンプルです。奇妙な理由で、Perl はそれ1 and 0が真の値であると考えています。なんで?

$ perl -e '$x = 1 and 0; print $x;'
1
4

3 に答える 3

12

andとの優先順位が&&異なるため:

$x = 1 and 0のようですが($x = 1) and 0$x = 1 && 0のよう$x = (1 && 0)です。

perlop(1)を参照してください。

于 2013-10-11T19:38:05.047 に答える
11

あなたの例での演算子の優先順位は

perl -e '($x = 1) and 0; print $x;'

あなたが望むのは:

perl -e '$x = (1 and 0); print $x;'

また

perl -e '$x = 1 && 0; print $x;'
于 2013-10-11T19:35:55.887 に答える
6

それはしません:

$ perl -e '$x = (1 and 0); print $x;'
0
于 2013-10-11T19:41:42.503 に答える