Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。
比較演算子は、左辺と右辺を比較して結果を論理値で返す。IF文などの条件式でよく使う。「if($count > 3){ ...goodness... }」といった感じで。
Perlの比較演算子は文字列用と数値用の2種類が用意されている。数値として比較した場合、対象を数値に変換してから比較を行う。この際、変換できなければ 0 となる(文字列の先頭が数値なら数値扱い)。対して文字列として比較する場合は厳密に行われ、値を文字列に変換するようなことはない。
| 数値 | 文字列 | 解説 |
|---|---|---|
| == | eq | 等しい |
| != | ne | 等しくない |
| > | gt | 左辺が右辺より大きい |
| < | lt | 左辺が右辺より小さい |
| >= | ge | 左辺が右辺より大きいか、等しい |
| <= | le | 左辺が右辺より小さいか、等しい |
| <=> | cmp | 比較(等しければ0、大きければ1、右引数が大きければ-1を返す) |
memo: 文字列として比較すると、12より9の方が大きくなる。これは、1と9の文字コードがまず比較されるから。
参考
#!/usr/bin/perluse strict;my $begin = '15:00:00';my $end = '15:59:59';if($begin > $end){ die 'begin';}if($begin == $end){ die 'eq';}if($begin < $end){ die 'end';}exit;
"eq"が出力される。
#!/usr/bin/perluse strict;#my $begin = '15:00:00';#my $end = '15:59:59';if($begin gt $end){ die 'begin';}if($begin eq $end){ die 'eq';}if($begin lt $end){ die 'end';}exit;
"end"が出力される。
Note: スパム対策が面倒なので、コメント投稿を廃止しました。以前のコメントは残します。
ご意見・ご要望はtwitter@sigwygかはてブコメントにて。