-1

我得到了一些代码它可以工作,但不理解这部分!$dump_done ...

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

2 回答 2

7

!逻辑非运算符。它将返回 的否定$dump_done。如果$dump_donecontains 0,否定会给你1

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

这是有效的,因为在Perl任何非零值中都被考虑true并被0考虑false

你可以试试这个片段:

if (5) {
    print "Hello";   # Will be executed.
}
于 2013-02-19T14:43:12.283 回答
2

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

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

真假

于 2013-02-19T14:43:32.653 回答