这是什么意思!$ var PERL?

时间:2013-02-19 14:40:29

标签: perl

我得到了一些代码它有效,但不理解这部分!$ dump_done ...

my $dump_done = 0; 
foreach my $line(keys %results){ 
    if ($results{$line} == 1 and !$dump_done) { 
         print Dump($post); 
         $dump_done = 1; 
    } 
}

2 个答案:

答案 0 :(得分:7)

!Logical NOT operator。它将返回$dump_done的否定。如果$dump_done包含0,则否定将为您提供1

my $dump_done = 0; 
print !$dump_done;   # Prints 1

这是有效的,因为在Perl中,任何非零值都被视为true0被视为false

您可以尝试使用此代码段:

if (5) {
    print "Hello";   # Will be executed.
}

答案 1 :(得分:2)

大多数编程语言中的!字符代表 NOT ,它是否定

如果变量$dump_done的值仍为零,则在测试$dump_done时,它将返回 FALSE (0)。如果否定此表达式,则会得到 TRUE 表达式(!= 0)。

请参阅Truth and Falsehood