4

私は C++ のバックグラウンドを持っており、Beginning Perl で perl を学ぼうとしています。しかし、第 2 章のこのコードは私を混乱させました。

#!/usr/bin/perl
use warnings;
print"Is two equal to four? ", 2 == 4, "\n";

コードを実行すると、次のように出力されます。

Is two equal to four? 

2==4 の値は定義されていないことがさらに下で説明されていますが、これは混乱を招き、直感に反するように思えます。2 は明らかに 4 と等しくなく、4 と 4 を同じように比較すると true になり、出力の最後に '1' が表示されます。式が false を返さないのはなぜですか?

4

4 に答える 4

12

します。trueただし、Perl にはand がありませんfalse。true-ish と false-ish の値があります。

ブール値を返す演算子は1、真の場合は を返し、偽の場合は、数値がゼロで文字列化された場合は空の文字列を返す特別な値を返します。ゼロを追加して結果を数値化することをお勧めします。

use warnings;
print"Is two equal to four? ", 0+(2 == 4), "\n";

出力:

Is two equal to four? 0
于 2013-08-23T10:14:58.780 に答える
1

Perl にはtrueand型がありませんfalse。そのため、あらゆる種類の比較を評価した結果がそれらになることはありません。代わりに同等の値が得られます。

于 2013-08-23T10:14:54.437 に答える