• ベストアンサー

データを読み込んだ時・・・・

すいません。初心者です。以下のようにデータを読み込んだとき、ifの条件部分 $form{'user'} eq $userid と、 $form{'kojimail'} eq $mail は、 ちゃんと判定してくれるのですが、 「$hantei eq $hanteiari」 は、判定しません. たぶん何かが違うんだと思いますが・・・・(>_<) 読み込んだデータ $hanteiari は、データベース内で、hanteiari と入力されています。何卒よろしく御願いします。 ★データベース情報 登録ID:名前:メールアドレス:性別:年齢:hanteiari:認証ID ★CGI #!/usr/local/bin/perl require 'cgi-lib.pl'; &ReadParse(*form); require 'jcode.pl'; &jcode'convert(*form, 'sjis'); open(ENQ, "<enquete.dat") || die "File 'enquete.dat' Open Error."; @dad= <ENQ>; $hanteiari= "hanteiari" foreach(@dad){ ($userid, $name, $mail, $sex, $age, $hantei, $kuuhaku )=split(/:/, $_); #ここです↓ if( $form{'user'} eq $userid && $form{'kojimail'} eq $mail && $hantei eq $hanteiari) {$ari =+10;} } if($ari< 5 ){ $atari =20;} close(ENQ);

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

  • ベストアンサー
回答No.1

変数名が紛らわしいのでよくわかりませんが… データからの入力 $hantei ← hanteiari ソースコード内 $hanteiari = "hanteiari"; それを後で、「$hantei eq $hanteiari」で比較したら 真となるのは当たり前のように思います。 >&& $hantei eq $hanteiari) を && $kuuhaku eq "hanteiari") とでも変えればいいのではないでしょうか。 (さらにchomp $kuuhakuも必要になると思います)

ohirosi
質問者

お礼

どうも有難う御座いました。 確かに $hanteiari = "hanteiari";と、していて、 「$hantei eq $hanteiari」で真と成るのは当たり前なのに、と頭を抱えていました・・・・が、 $hantei eq"hanteiari"でうまくいきました。 有難う御座います!m(。-_-。)m

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>$hanteiari= "hanteiari" 行末の;がありませんが、単なる転記ミスでしょうね。 あと、特に、問題となるような部分はありませんが、 :認証IDが省略されていて 登録ID:名前:メールアドレス:性別:年齢:hanteiari で終わっているようなデータではないでしょうね?

ohirosi
質問者

お礼

どうも有難う御座いました。確かに;が抜けていましたね。失礼しました。

関連するQ&A