-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_doneが含まれている場合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を表し、それは否定です。

変数の値$dump_doneがまだゼロの場合、テストするとFALSE (0)$dump_doneが返されます。この式を否定すると、 TRUE式 (!= 0) になります。

真実と虚偽を見る

于 2013-02-19T14:43:32.653 に答える