perl中变量前面的“!”是什么意思

perl中变量前面的“!”是什么意思,perl,syntax,Perl,Syntax,这行我需要你的帮助我不明白这张支票的意思 if (!$value) {$value = 0;} 这是最重要的 如果$value的值为true$值将计算为假值 如果$value的值为false$值将计算为真实值 作为一个整体,如果$value为,则语句将$value设置为0 它可以写成如下: $value ||= 0; 它肯定是用于以下目的的快捷方式: if (!defined($value)) { $value = 0; } # Can be written as: $value //

这行我需要你的帮助我不明白这张支票的意思

if (!$value) {$value = 0;}
这是最重要的

如果$value的值为true$值将计算为假值

如果$value的值为false$值将计算为真实值

作为一个整体,如果$value为,则语句将$value设置为0

它可以写成如下:

$value ||= 0;
它肯定是用于以下目的的快捷方式:

if (!defined($value)) { $value = 0; }    # Can be written as: $value //= 0;

请参阅参考资料-包括操作员等,包括!在符号一元运算符下。同样,perlsyn和related也是related reads.@toolic,这是文档中最糟糕的部分之一。有关原因,请参见的答案中的我的评论。有关更好的文档,请参阅。这是一个不完整的假值列表,包含任意列表的假返回代码段,其中混合了重复项。@ikegami文档修补程序始终受到搬运工的欢迎,前提是它仍然能够传递用户所需的信息。您好,我只需要确认我从你那里得到的是否正确,这意味着它正在检查变量是否为空,如果为空,它会将变量的值设置为0,对吗?假设你的意思是未定义为空,那么不完全正确。虽然undefined为false,但这不是唯一的false值。如果$value的计算结果不为true,它会将变量设置为0。就是这样,对于0,空字符串、未定义、空列表和返回的false值$任何事情本身。我不认为它可以被视为未定义的捷径,如最后一点所述。相反,它将所有数值为0的假值、字符串0、空字符串和未定义值规范化为一种假值0。@Silvar,这是极不可能的。所讨论的代码可能只接受默认为零的可选数字。你可以用!定义了$value来检查,但是$值是代码似乎使用过的完全有效的快捷方式。