Perlメモ —比較演算子—

/web/server-side

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の文字コードがまず比較されるから。

参考

  1. #!/usr/bin/perl
  2. use strict;
  3.  
  4. my $begin = '15:00:00';
  5. my $end = '15:59:59';
  6.  
  7. if($begin > $end){ die 'begin';}
  8. if($begin == $end){ die 'eq';}
  9. if($begin < $end){ die 'end';}
  10.  
  11. exit;

"eq"が出力される。

  1. #!/usr/bin/perl
  2. use strict;
  3.  
  4. #my $begin = '15:00:00';
  5. #my $end = '15:59:59';
  6.  
  7. if($begin gt $end){ die 'begin';}
  8. if($begin eq $end){ die 'eq';}
  9. if($begin lt $end){ die 'end';}
  10.  
  11. exit;

"end"が出力される。

Note: スパム対策が面倒なので、コメント投稿を廃止しました。以前のコメントは残します。
ご意見・ご要望はtwitter@sigwygかはてブコメントにて。