人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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"};

●質問者: Hidden
●カテゴリ:ウェブ制作
✍キーワード:AA AA= CGI firefox HTML
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Kentaro KURIBAYASHI
ベストアンサー
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版

続・初めてのPerl 改訂版

続・初めてのPerl 改訂版


2 ● a-kuma3

こんな感じ。

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ