回答:
Perlでの文字列比較には、eq
またはne
:
if ($str eq "")
{
// ...
}
演算子は、数値の比較演算子。それらは比較する前に両方のオペランドを整数に変換しようとします。==
!=
詳細については、perlopのマニュアルページを参照してください。
すでにいくつかの人が述べたように、eq
ここが正しいオペレーターです。
あなたの場合はuse warnings;
、スクリプトで、あなたはこのことについて警告(および他の多くの有益なもの)を取得します。私use strict;
もお勧めします。
use strict
が、いくつかの古いコードを更新しているので、これを追加すると何百ものエラーが発生します。私はおそらくそれらをいつか修正するでしょう。
CPANの使用を除いて、何かを行う「適切な」方法の概念そのものは、Perlには存在しません。
とにかくそれらは数値演算子です、あなたは使うべきです
if($foo eq "")
または
if(length($foo) == 0)
if ($foo == "")
、例えば、ある決定的に間違っている、あなたが実際にいるかどうかをテストすることを意味しない限り、$foo
数値コンテキストで評価され、それが思われる場合には0の値(持って、まだ良くのように書くことをif ($foo == 0)
それがより明確にあなたを表現するように、意図)。