我得到了一些代碼,它的工作原理,但不understan這個部分!$ dump_done ...
my $dump_done = 0;
foreach my $line(keys %results){
if ($results{$line} == 1 and !$dump_done) {
print Dump($post);
$dump_done = 1;
}
}
我得到了一些代碼,它的工作原理,但不understan這個部分!$ dump_done ...
my $dump_done = 0;
foreach my $line(keys %results){
if ($results{$line} == 1 and !$dump_done) {
print Dump($post);
$dump_done = 1;
}
}
!
是Logical NOT operator。它將返回$dump_done
的否定。如果$dump_done
包含0
,否定會給你1
:
my $dump_done = 0;
print !$dump_done; # Prints 1
這是有效的,因爲在任何Perl
非零值被認爲是true
和0
被認爲是false
。
你可以試試這個片段:
if (5) {
print "Hello"; # Will be executed.
}
的!
字符大多數編程語言代表不,它是否定。
如果變量$dump_done
的值仍然爲零,則當您測試$dump_done
時,它將返回FALSE(0)。如果你否定這個表達式,你會得到一個TRUE表達式(!= 0)。
但是爲什麼在這個例子中打印轉儲($ post);只有一次? – Hellena 2013-02-19 15:23:48
如果打印'$ POST'第一次的'$ dump_done = 1'值變爲1,之後,價值'!$ dump_one'變成0。下一次你的病情會永遠是'虛假'。 – gaussblurinc 2013-02-19 15:32:27
我現在明白了...謝謝!!! – Hellena 2013-02-19 15:39:17