今でこそなんとなくわかるif文ですが、独学で最初に飛ばすところではないでしょうか?それは私でした。そこで、同じ境遇の方のために、基本的な例文をちょっと考えてみました。
【例文part1:「eq」を使ったif文】
if ($name eq 'yahoo') { print "ヤフーに一票!"; }
else { print "グーグルに一票!"; }
文章で説明すると、、、
もし、$nameがyahooだったら、「ヤフーに一票!」と表示しなさい。
それ以外は「グーグルに一票!」と表示しなさい。
【例文part2:「ne」を使ったif文】
if ($name ne 'yahoo') { print "グーグルに一票!"; }
else { print "ヤフーに一票!"; }
文章で説明すると、、、
もし、$nameがyahooでなかったら、「グーグルに一票!」と表示しなさい。
それ以外は「ヤフーに一票!」と表示しなさい。
【例文part3:「elsif」を加えたif文】
if ($name eq 'yahoo'){ print "ヤフーに一票!"; }
elsif ($name eq 'google'){ print "グーグルに一票!"; }
else { print "ビルゲイツに一票!"; }
文章で説明すると、、、
もし、$nameがyahooだったら、「ヤフーに一票!」と表示しなさい。
もし、$nameがgoogleだったら、「グーグルに一票!」と表示しなさい。
それ以外は「ビルゲイツに一票!」と表示しなさい。
と言うような感じです。
「eq」で単語を指定して、「else」でそれ以外に同様の処理を施すと言う方が比較的使いやすく、また使う機会も多いです。
例えば、或るパスワードを設定し、それに対して「ne」で拒否「eq」で認証と言う場合、
「eq」で認証、「else」でそれ以外を拒否と言う風に置き換えることができます。
例えば、なんらかのプログラムで画像を表示させる場合と入力がなければ表示させずに任意の画像を表示させるとして、、、
if ($image eq '') { print "<img src=./img/hoge.gif>"; }
else { print "<img src=$image>"; }
と言うようにすると、$imageに入力がなければ($imageが空白であれば)hoge.gifを表示させ、
入力があれば$imageを表示させると言うようなことが出来ます。
これを逆に「ne」を使って例文を書くと、、、
if ($image ne '') { print "<img src=$image>"; }
else { print "<img src=./img/hoge.gif>"; }
と言うように、、$imageに入力があれば($imageが空白ではなければ)$imageを表示、
それ以外はhoge.gifを表示と言うような感じになります。
私がつまづいたのがこの「eq」と「ne」の解釈の違いの部分だったのですが、今思えば無理に覚えなくても良かったと後悔しています。「eq」の使い方を覚えてしまえば「ne」は自動的に覚えてしまうので、私的には両方覚えようとせずに「eq」の使い方だけを覚えることをおすすめします。
例えば、if文の中に更にif文を組み込むとするならば、、、
if ($image eq '')
{
if ($name eq 'taro') { print "<img src=./img/taro.gif>";}
else { print "<img src=./img/hoge.gif>";}
}
else { print "<img src=$image>"; }
文章で説明すると、、、
もし$imageに入力がなくて($imageが空白で)、$nameが「taro」であればtaro.gifを表示し、それ以外はhoge.gifを表示。
$imageに入力があれば($imageが空白ではなければ)、$imageを表示と言うような感じになります。
この様に、if文の中に更にif文を組み込んでいくと怖いのがスクリプトエラーですが、
そんな時はKentWebの
PerlCheckerを使うと便利です。