燈明ブログ

現状は小池啓仁の応援ブログ

Perlでの and と or について

Perlでの and と or も論理演算子といい、普通の言語のようにif文でも使用しますが、Perlでは以下のサンプルのように普通文でも使用します。

◆サンプル

open my $fh, '>', $file  and print "Open OK!\n" or die "Cannot open '$file': $!";

◆andの性質

◆orの性質

◆サンプル解説

で、サンプルのようにandとorの複合になると、ちょっとややっこしくなりますね。

  • openが正常の時は真を返し、andの左オペランドが真になり『print "Open OK!\n"』を実行し、printは成功時に真を返すので、openの真とこの真でorの左オペランドが真となり、『die "Cannot open '$file': $!"』は、実行されません。
  • openが異常の時は偽を返し、andの左オペランドが偽となり『print "Open OK!\n"』を実行せず、orの左オペランドもそのまま偽となり『die "Cannot open '$file': $!"』が実行されます。