2009-11-03 Perlでの and と or について Perlノート Perlでの and と or も論理演算子といい、普通の言語のようにif文でも使用しますが、Perlでは以下のサンプルのように普通文でも使用します。 ◆サンプル open my $fh, '>', $file and print "Open OK!\n" or die "Cannot open '$file': $!"; ◆andの性質 and は、andの左オペランドが真のときは、右オペランドを実行します。 and は、andの左オペランドが偽のときは、右オペランドを実行しません。 ◆orの性質 or は、orの左オペランドが偽のときには、右オペランドを実行します。 or は、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': $!"』が実行されます。