可能性の重複:
How do I use boolean variables in Perl?真/偽のブール値がPerlに組み込まれていますか?
[[email protected] ~]$ perl -e 'if(true){print 1}'
1
[[email protected] ~]$ perl -e 'if(false){print 1}'
1
私は両方true
とfalse
がif
渡しびっくりだよ...常に
可能性の重複:
How do I use boolean variables in Perl?真/偽のブール値がPerlに組み込まれていますか?
[[email protected] ~]$ perl -e 'if(true){print 1}'
1
[[email protected] ~]$ perl -e 'if(false){print 1}'
1
私は両方true
とfalse
がif
渡しびっくりだよ...常に
警告を使用し、特に 1を上ライナー。
Perlには、trueまたはfalseの名前付き定数はありません。警告または厳密に有効化されていないと、定数または関数ではあるが、そうでないものは静かに文字列として解釈されます。したがって、if("true")
とif("false")
を実行しており、""
または"0"
以外のすべての文字列はtrueです。
あなたは厳しいとそれを実行すると:常に真である文字列"true"
または"false"
として解釈され
Bareword "true" not allowed while "strict subs" in use at -e line 1.
:
perl -Mstrict -e 'if(true) { print 1 }'
あなたは理由になるだろう。定数はPerlで定義されていないが、あなたはそれを自分で行うことができます。
use constant { true => 1, false => 0 };
if(false) { print 1 }
あなたは裸の単語true
とfalse
を使用しています。裸の言葉は悪いことです。あなたはこれをしようとした場合:
Bareword "true" not allowed while "strict subs" in use at - line 3.
Execution of - aborted due to compilation errors.
どれ定義された値が0のように見えない「真」とみなされます。
use strict;
use warnings;
if (true){print 1}
あなたは、おそらくこのような何かを得るでしょう。未定義の値または0(たとえば0
または"0"
など)のような値は、すべて「false」と見なされます。これらの値には組み込みのキーワードはありません。あなただけの0
と1
を使用する(または、それは本当にあなたを悩ます場合use constant { true => 1, false => 0};
に固執することができます。:)
を見て、私は4GLを移植していますコードをPerl 5に変換し、定数を持たせると助けになります。私はそれらについて忘れていた。ありがとう。 – octopusgrabbus
「男のperlsyn」またはhttp://perldoc.perl.org/perlsyn.html –