- ベストアンサー
ifについて
今日始めた初心者です。 変数Aと変数Bが真のときAを出力したいのですが、 下記のように書いた場合、(自分の中では)偽のはずなのにAが出力されてしまいます。 なぜでしょうか。 $A = abc; $B = abcd; if ($A == $B){ print "$A" ; }
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
比較を == でやっているからです。== での比較はその両辺を 数値として扱います。このため、$Aも$Bもその値が0として扱われていまい 結果として 0==0dで両辺が等しいとみなされてしまっているのです。 文字列として比較をしたいのなら、eq を使ってください。 if ($A eq $B) とすれば期待した結果が得られるでしょう。
お礼
早急な回答ありがとうございます。 勉強になりました。