1. ホーム
  2. string

[解決済み] Perlで "eq "と"=="を使った文字列比較 [duplicate]

2023-07-03 04:47:20

質問

私は(Perlの完全な初心者です)文字列比較を if ステートメントで文字列の比較を行なっています。

以下のようにすると

if ($str1 == "taste" && $str2 == "waste") { }

私は正しい結果を見ました(すなわち、条件が一致する場合、それは"then"ブロックを評価する)。しかし、私はこれらの警告を参照してください。

引数 "taste" は、行番号 x の numeric eq (==) において numeric ではありません。

引数 "waste"は、行番号 x の numeric eq (==) に含まれる数値ではありません。

でも、そうすると

if ($str1 eq "taste" && $str2 eq "waste") { }

if条件が成立しても、"then"のブロックは評価されません。

ここでは $str1taste であり $str2waste .

これはどのように修正すればよいのでしょうか?

どのように解決するのですか?

まず eq は文字列を比較するためのものです。 == は数値の比較です。

"if"の条件が満たされても、"then"のブロックは評価されないのだそうです。

あなたの問題は、あなたの変数があなたが考えているものを含んでいないことだと思います。私は、あなたの $str1 または $str2 には "tasten" 等が入ります。の前にプリントして確認してください。 もし : print "str1='$str1'\n"; .

末尾の改行は chomp($str1); 関数で削除できます。