• 締切済み

どこが違うか分かりません

open OUT, "kekka.dat"; $name1 = "荒木"; $name2 = "井上"; $name3 = "上田"; $name4 = "江口"; $name5 = "小川"; $san = "さん"; $kun = "くん"; %kokugo = (araki =>94, inoue => 73, ueda =>76, eguchi => 69, ogawa =>84); %sugaku = (araki =>81, inoue => 93, ueda =>64, eguchi => 83, ogawa =>74); %eigo = (araki =>89, inoue => 85, ueda =>81, eguchi => 75, ogawa =>87); print %kokugo print %sugaku print %eigo $score[1] = $kokugo{araki} + $sugaku{araki} + $eigo{araki}; $score[2] = $kokugo{inoue} + $sugaku{inoue} + $eigo{inoue}; $score[3] = $kokugo{ueda} + $sugaku{ueda} + $eigo{ueda}; $score[4] = $kokugo{eguchi} + $sugaku{eguchi} + $eigo{eguchi}; $score[5] = $kokugo{eguchi} + $sugaku{eguchi} + $eigo{eguchi}; print $score; print OUT $name1.$kun, $score[1], $score[1]/3; print OUT $name2.$san, $score[2], $score[2]/3; print OUT $name3.$kun, $score[3], $score[3]/3; print OUT $name4.$kun, $score[4], $score[4]/3; print OUT $name5.$san, $score[5], $score[5]/3; close OUT; 教えてください

みんなの回答

  • shinsa14
  • ベストアンサー率0% (0/0)
回答No.3

初心者なんですが、回答していいものか・・・ 下記の個所を修正すれば、とりあえずは動くと思うのですが 1行目 <before> open OUT, "kekka.dat"; <after> open OUT, ">kekka.dat"; 11~13行目 <before> %kokugo = (araki =>94, ..... <after> %kokugo = ("araki" =>94, ..... 15~17行目 <before> print %kokugo <after> print %kokugo; 25行目 <before> print $score; <after> print @score; これでとりあえずは動くとおもうのですが・・・ファイルは更新されないようです。 他に気になった点がいくつか・・・ 15~17行目 print %kokugo; ※ %配列をいきなり出力してしまうのは、とても大胆なような気がするのですが($変数にワンクッションおくとか・・・27~31行目もおなじような気がします。・・・) 23行目 <before> $score[5] = $kokugo{eguchi} .... <after> 江口くん じゃなくて 小川さん ですよね・・・どうでもいいですか・・・ 素人ながら、私もにたようなプログラムで、苦しんでいたもので・・・ ついつい、回答してしまいました。 大変、失礼しました。

回答No.2

まず15から17行目でセミコロンが抜けています. print %kokugo ; print %sugaku ; print %eigo ; 後はファイルオープンできてません. 27~31行目のOUTを取るととりあえず標準出力で表示されるようです。 ※perl for winをインストールしてローカル環境でデバッグしましょう。 以上、仕事中のおじさんでした(^^;)

回答No.1

CGIの文法ことはわからないんですが、多分 $score[]って配列なんですよね。 print $score; この部分で配列扱いされていないようですが・・・・

関連するQ&A