達(dá)令說
2019-08-12 16:34:41
如何在Perl中使用布爾變量?我試過了:$var = false;$var = FALSE;$var = False;這些都不起作用。我收到錯誤消息當(dāng)使用“strict subs”時,不允許使用Bareword“false”。
3 回答

浮云間
TA貢獻(xiàn)1829條經(jīng)驗 獲得超4個贊
在Perl中,以下在條件語句中評估為false:
0
'0'
undef
'' # Empty scalar
() # Empty list
('')
其余的都是如此。沒有裸言語true或false。

搖曳的薔薇
TA貢獻(xiàn)1793條經(jīng)驗 獲得超6個贊
Perl沒有本機布爾類型,但您可以使用整數(shù)或字符串的比較來獲得相同的行為。Alan的例子是使用整數(shù)比較的一種很好的方法。這是一個例子
my $boolean = 0;if ( $boolean ) { print "$boolean evaluates to true\n";} else { print "$boolean evaluates to false\n";}
我在一些程序中完成的一件事是使用常量添加相同的行為:
#!/usr/bin/perluse strict;use warnings;use constant false => 0;use constant true => 1;my $val1 = true;my $val2 = false;print $val1, " && ", $val2;if ( $val1 && $val2 ) { print " evaluates to true.\n";} else { print " evaluates to false.\n";}print $val1, " || ", $val2;if ( $val1 || $val2 ) { print " evaluates to true.\n";} else { print " evaluates to false.\n";}
“use constant”中標(biāo)記的行定義一個名為true的常量,總是求值為1,一個名為false的常量始終求值為0.由于在Perl中定義常量的方式,以下代碼行也會失?。?/p>
true = 0;true = false;
錯誤消息應(yīng)該說“無法修改標(biāo)量賦值中的常量”。
我在其中一條關(guān)于比較字符串的評論中看到了這一點。您應(yīng)該知道,因為Perl在標(biāo)量變量中組合了字符串和數(shù)字類型,所以您可以使用不同的語法來比較字符串和數(shù)字:
my $var1 = "5.0";my $var2 = "5";print "using operator eq\n";if ( $var1 eq $var2 ) { print "$var1 and $var2 are equal!\n";} else { print "$var1 and $var2 are not equal!\n";}print "using operator ==\n";if ( $var1 == $var2 ) { print "$var1 and $var2 are equal!\n";} else { print "$var1 and $var2 are not equal!\n";}
這些運算符之間的差異是Perl中非常常見的混淆源。
添加回答
舉報
0/150
提交
取消