プログラムが最初から最後まで1本道だったら、いつも同じ答えが出てしまい、応用がききません。
やっぱり、プログラムにはいろいろな場合場合によって、状況を変えるわかれ道が必要で、そうでなくてはなりません。
Perlでわかれ道を作るには次のようにします。
if ($hour == 6) { print "おはようございます"; }
if は もし~なら という英語で、if の後に条件があって、もし条件に合えば、{ } の中を実行し、もし条件に合わなければ、{ } は無視して次に進むようになっています。
上の例では、もし $hour という変数が 6 だった場合のみ、「おはようございます」と表示され、6 以外だった場合は、何も表示されないという意味になります。
== は 数字を比較するときに使う特殊な記号(比較演算子)で、同じかどうかを調べます。
if ($hour != 6) { print "6時ではありません"; }
!= も 数字を比較するときに使う特殊記号で、違うかどうかを調べます。
上の例では、$hour が 6 ではないときに、{ } の中を実行します。
if ($hour < 6) { print "まだ6時になってません"; }
if ($hour > 6) { print "もう6時は過ぎました"; }
if ($hour <= 6) { print "6時か6時前ですね"; }
if ($hour >= 6) { print "6時以降ですね"; }
不等号を使って比較することもできます。
文字を比較するときには別の記号を使います。
if ($shumi eq 'マラソン') { print "何km走れますか?"; }
if ($shumi ne 'マラソン') { print "走るのは嫌いですか?"; }
eq は 文字が同じかどうかを調べます。英語のイコール(equal)を略したんでしょうね。
ne は 文字が違うかどうかを調べます。not equal の略でしょう。
さらに、2つ以上の条件を使うには次のようにします。
if ($hour >= 6 && $hour <= 9) { print "おはようございます"; }
if ($hour <= 4 || $hour >= 18) { print "こんばんは"; }
$hour が 6時から9時の間のときに、「おはようございます」を表示します。
$hour が 4時より前、あるいは 18時以降のときに、「こんばんは」を表示します。
条件と条件の間に && を入れることで、両方の条件を満たすかどうかを、
同様に間に || を入れることで、どちらかの条件を満たすかどうかを調べます。
これらを使って複雑な条件を作ることができます。
if ($hour >= 6 && $hour <= 8 && ($shumi eq 'マラソン' || $shumi eq 'ジョギング')) { print "さあ、朝のランニングに行きましょう"; }
6時から8時の間で、かつ、趣味がマラソンかジョギングのときに表示されます。
このとき、優先度に注意してください。
>= や <= や eq が最優先で、次に && 最後に || という順番があります
上の場合、2番目の && よりも マラソンとジョギングをつなぐ || を優先したいので、( ) でくくっています。
もし、カッコがなかった場合は、
6時から8時の間でかつ趣味がマラソン、あるいは、趣味がジョギング
という条件になってしまいます。