• 締切済み

CGIのソート処理、配列データの合計値計算と書き込み・・・

ご存知でしたら、お教えください。 現在、CGIを組み込んでいるんですが、以下の2つがうまく稼動しません。 マニュアルを色々読んでみても、はっきりとどこが悪いのかなどがよくわかりません。 現在、悩んでいるのは、 (1)ソート処理について データファイル内に以下のデータがあるとします。 名前($name)、所属($shozoku)、得点合計($goukei)、A得点($ten1)、B得点($ten2)、C得点($ten3)・・・ たなか<>さくら組<>32<>12<>15<>9・・・ やまだ<>もも組<>29<>13<>11<>10・・・ すずき<>さくら組<>33<>14<>10<>15・・・ ※<>は区切り文字です。 上記のデータをforeach文で読み込んで、得点合計順にWEBで表示させよう としているんですが、読み込む際に下記の通りでいいのでしょうか。 これでは駄目なんでしょうか?下記で実行すると、データが1件も表示されません。 @line=sort { $goukei{$b} <=> $goukei{$a} } keys %goukei; foreach(@line_sort){ ($num,$shozoku,$goukei,$ten1,$ten2,$ten3) = split(/<>/,$line) (2)合計点の集計 上記にも関係するんですが、WEBで指示した各点数(A得点、B得点・・・)を 集計した後、上記データファイルの得点合計に設定したいんですが、 unshift(@line,"$name<>$shozoku<>$goukei<>" . $v_ten . "<>\n"); 上記のようにA得点以降は、フォーム上で繰り返し項目にしてあります。($v_ten)がn個あり、それを全て合計した値を得点合計($goukei)に設定した後にデータファイルへの書き込みがしたいのですが、どうすればよいのでしょうか。 なにぶん、CGIのプログラミングは素人の私ゆえ、ご質問がこれでよいのか不安がありますが、よろしくお願いいたします。

みんなの回答

  • hazenoki
  • ベストアンサー率33% (21/62)
回答No.1

質問から適切な回答をするには、難しいような気がします。状況にわからない点が多いから。 言葉で説明できないなら、一通りの流れがわかる範囲のソースを描いておいた方がいいのでは? (あまり長いと誰も呼んでくれないと思いますが。) ちなみに、CGIとは仕組みの名前であって、プログラミング言語の名前では ありません。質問は、perl という言語についてのものと思います。 質問(1) データが1件も表示されないとのことですが、いろいろ可能性が考えられます。 print 文がない、 中カッコが閉じていない、perl 本体がない、などなど 質問(2) $v_ten が n個あるのなら、n回足せばいいのでは? と思ってしまいますが、質問の意図は、そういうことではないですよね。 「フォーム上で繰り返し項目にしてあります。」の意味もわかりません。

関連するQ&A