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/perl
use 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/perl
use 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かはてブコメントにて。