如何將0賦值給Perl中的標量變量? 我的代碼:將零賦值給Perl中的標量變量
$x=0;
if(!$x)
{
print "fail";
}
else
{
print "pass";
}
輸出:失敗
如何將0賦值給Perl中的標量變量? 我的代碼:將零賦值給Perl中的標量變量
$x=0;
if(!$x)
{
print "fail";
}
else
{
print "pass";
}
輸出:失敗
打開use strict;
和use warnings;
,它會告訴你,!x
是錯誤的:
裸詞 「X」 時不允許使用「嚴格潛艇「正在使用
它應該是! $x
- 或者由我預先設定e,not $x
。
您應該總是use strict;
和use warnings 'all';
。
所以,它被分配,但你問Perl的錯誤問題。你問,「是$ x假?」並且因爲Perl中的零等於false,所以Perl說的是真的。你想知道的是,$ x被賦值爲零。
use strict;
use warnings;
my $x=0;
if (not defined $x || $x != 0) {
print "fail";
} else {
print "pass";
}
此打印pass
。
而且,正如我的同事們指出,經常使用use strict;
和use warnings;
,當你這樣做,你還需要在你的$x
前加上一個my
。
希望能夠澄清一些事情。
您需要輸入'pass' – ssr1012
爲什麼你期待'0'是一個真正的價值?在Perl中它被視爲錯誤。 – melpomene
獲得答案後,請不要更改您的問題。由於您的編輯,Sobrique的回答不再有意義,任何未來訪問此頁面的人都會對「!x」的來源感到困惑。這就是爲什麼你應該總是複製和粘貼你正在使用的確切代碼,或者甚至更好,創建一個能夠再現你的問題的[mcve]。 – ThisSuitIsBlackNot