CGIについて質問です

$aaと$ab(変数)が異なる場合は、違いますを表示させ
$aaと$abが同じ場合は、同じですを表示させたいのですが
なぜかどちらも表示されてしまいます
内容
#!/usr/bin/perl
$aa="1";
$ab="2";

print "content-type:text/html\n";
print "\n";
print '<title>作成中</title>';
print '<noscript>このページはjavascriptを使用しています。<Br>このメッセージが表示されている場合は、最新のブラウザーを、イ

ンストールしてください。(<a href="http://mozilla.jp/firefox/download/">firefoxをダウンロード</a></noscript>';
print '<center><font size="7">作成中</center></font>';
if ($aa = $ab){print "aとbは同じ\n"};
if ($aa!=$ab){print "aとbは違う\n"};

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2011/06/27 22:16:25

ベストアンサー

id:antipop No.1

回答回数16ベストアンサー獲得回数2

if ($aa = $ab){print "aとbは同じ\n"};

この部分で$aaと$abを比較するのではなく、$abの値が$aaに代入され、結果、if($abの内容)となってしまい、trueになり、そのため$aaの内容は$abと同じになってしまったので、

if ($aa!=$ab){print "aとbは違う\n"};

これもtrueとなってしまっているんだと思います。

if ($aa == $ab){print "aとbは同じ\n"};
if ($aa!=$ab){print "aとbは違う\n"};

このように、==で比較しするのが、意図したコードなのでははないかと思います。

Perlを勉強するなら、ちょっと難しいかもしれませんが、以下を読んでみるとよいと思います。

初めてのPerl 第5版

初めてのPerl 第5版

その他の回答1件)

id:antipop No.1

回答回数16ベストアンサー獲得回数2ここでベストアンサー

if ($aa = $ab){print "aとbは同じ\n"};

この部分で$aaと$abを比較するのではなく、$abの値が$aaに代入され、結果、if($abの内容)となってしまい、trueになり、そのため$aaの内容は$abと同じになってしまったので、

if ($aa!=$ab){print "aとbは違う\n"};

これもtrueとなってしまっているんだと思います。

if ($aa == $ab){print "aとbは同じ\n"};
if ($aa!=$ab){print "aとbは違う\n"};

このように、==で比較しするのが、意図したコードなのでははないかと思います。

Perlを勉強するなら、ちょっと難しいかもしれませんが、以下を読んでみるとよいと思います。

初めてのPerl 第5版

初めてのPerl 第5版

id:a-kuma3 No.2

回答回数4971ベストアンサー獲得回数2153

こんな感じ。

if ($aa eq $ab){print "aとbは同じ\n"};
if ($aa ne $ab){print "aとbは違う\n"};

「perl 比較演算子」みたいなキーワードで検索してみましょう。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません