小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

Perlで and, &&, or, || の違いと便利な使い道

これらは、論理演算子で、普通、if文で使用します。
今回は、andと&&等の違いやif文以外の便利な使い道などを紹介します。

違い

andと&&、orと|| は、各々同じものですが、演算子の優先順位が異なります。
Perl5から導入された、優先順位の低い andと orを使う方が推奨とのことです。
(優先順位の低い方が、他の演算子との影響が小さいため)

便利な使い道

or論理演算子は、A or Bで、どちらか一方が真ならば真となります。
Aが真であれば、Bの真偽に関係なく真となるため、Bの評価は行わないです。
これを利用して、Aが偽のときにBを行うのに、orが使われます。

# ファイルを開く。開けなければメッセージを出して終了。
open (IN, "file.txt") or die "Cannot open the file\n";


and論理演算子は、A and Bで、両方とも真でなければ真にならないです。
Aが偽であれば、Bの真偽に関係なく偽となるため、Bの評価は行わないです。
これを利用して、Aが真のときにBを行うのに、andが使われます。

# ファイルを開く。開ければ1レコードを$dataに読み込む。
open (IN, "file.txt") and $data = ;