• ベストアンサー

ifについて

今日始めた初心者です。 変数Aと変数Bが真のときAを出力したいのですが、 下記のように書いた場合、(自分の中では)偽のはずなのにAが出力されてしまいます。 なぜでしょうか。 $A = abc; $B = abcd; if ($A == $B){ print "$A" ; }

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

比較を == でやっているからです。== での比較はその両辺を 数値として扱います。このため、$Aも$Bもその値が0として扱われていまい 結果として 0==0dで両辺が等しいとみなされてしまっているのです。 文字列として比較をしたいのなら、eq を使ってください。 if ($A eq $B) とすれば期待した結果が得られるでしょう。

-oompa-
質問者

お礼

早急な回答ありがとうございます。 勉強になりました。

関連するQ&A

専門家に質問してみよう