将零赋值给Perl中的标量变量
问题描述:
如何将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