質問: Perlでの比較演算子でよくわからないものがあります。 この比較は何を意味しているのでしょうか? (例) ``` if ($val eq 'hoge') { .... } ```
回答: これは文字列演算子です。 文字列演算子の種類としては以下のものがあります。 ``` # eq : 左引数と右引数が等しければ真を返します。 if ('1' eq '1') { print "等しい\n"; } # ne : 左引数と右引数が等しくなければ真を返します。 if ('1' ne '2') { print "等しくない\n"; } # lt : 左引数が右引数より小さければ真を返します。 if ('1' lt '2') { print "左が小さい\n"; } # gt : 左引数が右引数より大きければ真を返します。 if ('2' gt '1') { print "左が大きい\n"; } # le : 左引数が右引数と同じか小さければ真を返します。 if ('1' le '1' && '0' le '1') { print "左が右より同じもしくは小さい\n"; } # ge : 左引数が右引数と同じか大きければ真を返します。 if ('1' ge '1' && '1' ge '1') { print "左が右より同じもしくは大きい\n"; } # cmp : 等しければ0、大きければ1、右引数が大きければ-1を返します。 if (('1' cmp '1') == 0) { print "等しい\n"; } if (('1' cmp '2') == -1) { print "右が大きい\n"; } if (('2' cmp '1') == 1) { print "左が大きい\n"; } ``` よく見る数値比較演算子でも比較は可能です。 但し、数値に変換してから比較しています。