• 締切済み

ソートとフォームデータの格納について

perlを勉強して恥を承知で困っています。 先日、こちらで質問し大いに助けてもらったのですが 不甲斐ないながらどうすれば良いのか分からず、アドバイスを求めています。 ・使用言語:perl ・目的:htmlから「名前」「スコア」を入力し、 スコアが降順(高い順)に名前とスコアを表示する ランキングcgiの作成 ・現状の進行度 score.html #名前とスコアを入力するhtml ranking.cgi #ソートし、入力されたスコアをランキングに組み込む cgi-lib.plをDL ・分からない事 ソートする時、スコアを降順にするにしても、 名前をどうやってスコアと一緒に連れてソートするのか、 cgi-lib.plは(ranking.)cgiに設置すればいいのでしょうか? どうかご教授賜りたく候。 score.html --------------------- <html> <head> <title>テスト</title> </head> <body> <form action="request/ranking.cgi " METHOD="post"> 名前 : <input type="text" name="NewName"><br> スコア: <input type="text" name="NewScore"><BR> <input type="submit" value="送信"> </form> </body> </html> ranking.cgi --------------------- #!/url/local/bin/perl #データの格納 my %input; &ReadParse(\input); $nn = $input{'NewName'}; $ns = $input{'NewScore'}; #ソート my @v = {100,200,300}; my @k = sort{$b <=> $a;} @v; #受け取ったスコアとランキングとの比較 if($ns > @k[1]){ @k[3] = @k[2]; @k[2] = @k[1]; @k[1] = $ns; }elsif($ns =< @k[1] && $ns > @k[2]){ @k[3] = @k[2]; @k[2] = $ns; }else($ns =< @k[2] && $ns > @k[3]){ @k[3] = $ns; } #出力 print "結果\n" for(my $i=0;$i<@k;$i++){ print "$i位: $k[$i]<BR>\n"; }

みんなの回答

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.1

とりあえずスコアと名前を適当な区切り文字(たとえばタブ)で結合したものを一次元配列に格納してから、 降順にソートして、 各要素を順に区切った文字で分離表示すればどうでしょうか?

kenesu
質問者

お礼

ralf124cさん。回答ありがとうございます。 いまさらになって何聞いているんだ、と後悔しています…。 だけどとても参考になりました。今一生懸命配列について勉強しています。

関連するQ&A