- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ランキングリストを作りたいんですが・・・)
初心者でも分かりやすいランキングリストの作り方
このQ&Aのポイント
- ランキングリストを作りたい場合、初心者でも分かりやすい方法があります。まず、データを読み込み、特定の項目で並び替えたい場合は、その項目を基準に並び替える方法があります。
- 例えば、$lvという項目を基準に並び替えたい場合は、データを読み込んでから$lvの値を取得し、それを基準にしてデータを並び替えることができます。そして、並び替えたデータを出力すれば、$lvの順に並んだランキングリストが作成されます。
- この方法は初心者でも簡単に理解できるため、ランキングリストを作りたい場合におすすめです。試行錯誤しながら実践してみてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#25358
回答No.1
お礼
早速の御指導ありがとうございます。 教えて頂いたスクリプトを利用して、 $data[0] = "www,2,www,www"; $data[1] = "www,1,www,www"; $data[2] = "www,4,www,www"; $data[3] = "www,3,www,www"; の内容表示を、 local($data) = @_; $data =~ s/\n$//; foreach ( @data ) { ($name,$lv,$hp,$gp) = split(/,/,$_); $_ = "$lv,$name,$hp,$gp"; } @data = sort { $a <=> $b } @data; foreach ( @data ) { ($lv,$name,$hp,$gp) = split(/,/,$_); $_ = "$name,$lv,$hp,$gp"; } としたんですが、何故か『$data[2]にはいってるデータ内容』だけが、$data[0]~$data[3] の分だけ出力されてしまいました・・・。 うまく説明できないんですが、 $data[2] = "www,4,www,www"; $data[3] = "www,3,www,www"; $data[0] = "www,2,www,www"; $data[1] = "www,1,www,www"; の順に出すはずが、出力されたのが $data[2] = "www,4,www,www" $data[2] = "www,4,www,www" $data[2] = "www,4,www,www" $data[2] = "www,4,www,www" になってしまったんです。 どこを修正したらよいのか教えて頂けないでしょうか? よろしくお願いします。