or演算子 - 優先順位が低い論理和
orはPerlの論理演算子のひとつで、論理和を表現します。||と意味は同じですが、orの方が演算子の優先順位が低く、文と文の間に利用するのが一般的です。
文1 or 文2
このように記述すると、文1が偽を返したときに、文2が実行されます。
orを条件分岐として使う
このような性質を利用してorは条件分岐に使われることが多いです。たとえばopen関数が失敗した場合は次のように記述します。
open my $fh, '<', $file or die qq/Can't open file "$file": $!/;
open関数が成功した場合は真が返されるのでorの右辺は実行されません。open関数が失敗した場合はundefが返されるので右辺のdieが実行されプログラムは終了します。
もうひとつの例として、system関数と一緒に使われることもあります。system関数は成功すると0を返すので、次のように記述します。
system(@cmd) == 0 or die "Can't execute command @cmd";
主要な処理を先に記述して、補足的なエラー処理を後で書きたい場合に、orによる条件分岐を使うことができます。
「and」を条件分岐に使うこともできますが、読みにくいので「or」をお勧めします。
# andで書き換えた例 system(@cmd) and die "Can't execute command @cmd";