[perl] sortの使い方って?

[上に] [前に] [次に]
アルプスの少年ペーター 1999/12/15(水) 09:48:25
とほほさんのperlのページを読みましたが、sortの使い方が良く分かりません。

例えば、「@hogehoge」という配列データが以下のようにあったとして

--- ここから ---
aaa,bbb,1,ccc
ddd,eee,99,fff
ggg,hhh,3,iii
jjj,kkk,2998,lll
--- ここまで ---

これを、各行の内容のカンマで区切られている3つ目の情報(つまり、1,99,3,2998)でソート(少ない順/多い順)するのには、どうしたらいいのでしょうか?

お手数かけますが、よろしくお願いします。

aqua-J 1999/12/15(水) 10:06:53
@sortdata = sort { (split(/\,/,$a))[2] <=> (split(/\,/,$b))[2] } @hogehoge;
でできます。
他にも、いろいろ方法はあるけど。いろいろとレスがつきそうですね。。。

aqua-J 1999/12/15(水) 10:09:03
補足:多い順(3,2,1)は
@sortdata = reverse sort { (split(/\,/,$a))[2] <=> (split(/\,/,$b))[2] } @hogehoge;

#一度に言いなさい−>自分。。反省。。

アルプスの少年ペーター 1999/12/15(水) 11:20:21
[[解決]]
出来たぁ〜。
ありがとうございました。>aqua-J様

[上に] [前に] [次に]