• ベストアンサー

エラーがでてしまうのですが・・・

文章比較がうく動かないんです。比較したい文字は小文字の欧文です。 $hakoにはアルファベットが入り、eq演算子で文字比較しています。 プログラムは下のような感じです。どうもo(オ-)あたりでエラーが出るんですが、どうして出るのかわかりません。 教えて頂きたいです。 また、ほかにもっと良い方法がある方は教えていただきたいです。環境はPerl 5.005_03でJPerlを使用してます。 if($hako eq a){$piti += 5;}      elsif($hako eq b){$piti += 6;}      elsif($hako eq c){$piti += 5;}      elsif($hako eq d){ $piti += 6;}      elsif($hako eq e){ $piti += 5;}      elsif($hako eq f){ $piti += 4;}      elsif($hako eq g){ $piti += 6;}      elsif($hako eq h){ $piti += 6;}      elsif($hako eq i){ $piti += 3;}      elsif($hako eq j){ $piti += 3;}      elsif($hako eq k){ $piti += 6;}      elsif($hako eq l){ $piti += 3;}      elsif($hako eq m){ $piti += 9;}      elsif($hako eq n){ $piti += 6;}      elsif($hako eq o){ $piti += 6;}      elsif($hako eq p){ $piti += 6;}      elsif($hako eq q){ $piti += 6;}      elsif($hako eq r){ $piti += 4;}      elsif($hako eq s){ $piti += 5;}      elsif($hako eq t){ $piti += 4;}      elsif($hako eq u){ $piti += 6;}      elsif($hako eq v){ $piti += 6;}      elsif($hako eq w){ $piti += 9;}      elsif($hako eq x){ $piti += 6;}      elsif($hako eq y){ $piti += 6;}      elsif($hako eq z){ $piti += 5;}

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

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

文字列をシングルクオートで括り忘れてますね(^^ それが原因です。 * * * if($hako eq 'a'){$piti += 5;} elsif($hako eq 'b'){$piti += 6;} elsif($hako eq 'c'){$piti += 5;} elsif($hako eq 'd'){ $piti += 6;} elsif($hako eq 'e'){ $piti += 5;} elsif($hako eq 'f'){ $piti += 4;} elsif($hako eq 'g'){ $piti += 6;} elsif($hako eq 'h'){ $piti += 6;} elsif($hako eq 'i'){ $piti += 3;} elsif($hako eq 'j'){ $piti += 3;} elsif($hako eq 'k'){ $piti += 6;} elsif($hako eq 'l'){ $piti += 3;} elsif($hako eq 'm'){ $piti += 9;} elsif($hako eq 'n'){ $piti += 6;} elsif($hako eq 'o'){ $piti += 6;} elsif($hako eq 'p'){ $piti += 6;} elsif($hako eq 'q'){ $piti += 6;} elsif($hako eq 'r'){ $piti += 4;} elsif($hako eq 's'){ $piti += 5;} elsif($hako eq 't'){ $piti += 4;} elsif($hako eq 'u'){ $piti += 6;} elsif($hako eq 'v'){ $piti += 6;} elsif($hako eq 'w'){ $piti += 9;} elsif($hako eq 'x'){ $piti += 6;} elsif($hako eq 'y'){ $piti += 6;} elsif($hako eq 'z'){ $piti += 5;}

Chiaki---
質問者

お礼

ありがとうございます。早速ためした所、できました! 助かりました。

その他の回答 (2)

  • ganzou
  • ベストアンサー率29% (25/85)
回答No.2

もしかして、aからzって文字定数のつもりでつかってんのか? 全部 "a" "b" "c" とするべきだな。

  • ganzou
  • ベストアンサー率29% (25/85)
回答No.1

エラーって何の? このコードではなくほかの部分にエラーがないという保証はあるの?

Chiaki---
質問者

補足

エラーはsyntax error at t.pl line 139,near "}" Execution of t.pl aborted due to compilation errors と表示されます。 139行目がちょうどelsif($hako eq o){ $piti += 6;}なんです・・ この他にエラーはないです。この部分の文章を抜くと普通にプログラムが動きます。言葉足らずですいません

関連するQ&A