第3章「条件判断」。これもサラッと。
ifの基本
if修飾子に関して
以下の2通りのコードは同じ動きをする。
if ($foo) { print $bar; }
print $bar if ($foo);
後者はif修飾子という。if文は中カッコを省略できなかったけど、if修飾子は中カッコを書かない(書けない?)。あとセミコロンが必要。使い分けに関しては
if文の方では、「まず条件式を調べましょう。これが真のときだけprintが実行されます」という主張が読み取れます。一方、if修飾子の方では、「printが実行されます。とこれでこれが実行されるのは…のときです」というように、あくまでも条件式は補足事項のように表現されています。ですから、「条件式」よりも「実行される処理」に重点を置いて表現したいときに、if修飾子を使うとよいでしょう。
(「新版 Perl言語プログラミングレッスン 入門編」 57ページより抜粋)
ということらしい。同様にunless修飾子、while修飾子、until修飾子、foreach修飾子というのもあるらしい。
比較演算子に関して
大小関係や等価性を調べる以下の演算は、数値として比較するか、文字列として比較するかで演算子が違う(下表は62ページより抜粋)。
数値 | 文字列 | 意味 |
---|---|---|
$x == $y | $x eq $y | 等しい(equal) |
$x != $y | $x ne $y | 等しくない(not equal) |
$x < $y | $x lt $y | $xは$yより小さい(less than) |
$x > $y | $x gt $y | $xは$yより大きい(greater than) |
$x <= $y | $x le $y | $xは$y以下(less than or equal to) |
$x >= $y | $x ge $y | $xは$y以上(greater than or equal to) |
$x <=> $y | $x cmp $y | $xと$yが等しいならば0、$xが$yより小さいなら-1、$xが$yより大きいなら1(compare) |
最後の演算子は初めてみたな。C#ではIComparableのCompareToメソッドやIComparerのCompareメソッドに相当するやつだな。
その他
その他大切そうなこと。この章でフォーカスされている話題ではないので、後々解説されるかもしれないもの。
- 標準入力を受け取るには $line =
; とする - 変数に格納されている文字列の末尾の改行文字を削除するにはchomp関数を使える