Perlの条件評価であるif文とunless文、そしてandとorを説明します。
if文とunless文 andとor
条件評価はif文とunless文の2通りあります。いやandとorもあります。
Perlは同じことをやるのに複数の方法を与えることを信条としていますので、条件評価も同様でさまざまな書き方があります。
「Aが真であるときBを実行する」は、以下のように様々な書き方があります。
if (A) { B }; B if A; do { B } if A; A and B; A && B; A and do { B }; A && do { B }; unless (!A) { B }; B unless !A;
Pythonが1個の動作でできるのはなるべく1つの方法になることを目指すのに対して、Perlはなるべくたくさんの方法を与えます。
Perlの「複雑さ」「冗長さ」とみるのか「豊かさ」「多彩さ」とみるのか。読者にお任せします。
if文とunless文
if文の文法
if文の使い方は以下が基本です。
if (条件式){ #何かやる } else { #他の何かをやる }
elseは省略可能です。また、elsifを付けて再び判定するのもありです。
つまり、以下のような文を書くことが可能です。
if (条件式){ # 何かやる } if (条件式1){ # 何かやる } elsif (条件式2){ # 何かをやる } elsif (条件式3){ # 何かをやる } else { # 最後に何かをやる } if (条件式1){ # 何かやる } elsif (条件式2){ # 何かをやる } elsif (条件式3){ #何かをやる }
elsif を何度も重ねるのは見にくいのと、Jeff Bayのオブジェクト指向の精神に反するのでなるべくやめましょう。
unless文
unless文の使い方は以下が基本です。
unless (条件式){ #何かやる }
条件式が偽のときにブロックに入ります。
elseも使えますが、普通の人はelseがあるときはifを使います。
and と or
Perlではif文の代わりにandとorを使うことを好む人たちがいます。
A and B; #Aが真だったらBを実行する A or B; #Aが偽たっだらBを実行する
私は、1行で済むときはand, orを使って、数行になるときはifを使います。また、warnやdieを組み合わせるのは常套です。
$debug and warn "Debug trace\n"; #debugが指定されたときだけトレース出力
とか
$success or die "Programm exiting\n"; #successでないとプログラム終了
まとめ
if文、unless文とandとorを説明しました。
コメント