Perlで配列や連想配列の値やキーをソートする方法
ソートなんて普段はDBにさせているので、実はプログラム側でやったことがなかったので、ちょっとメモしておこうかなと(^_^;)。
配列の場合
まずは数値として昇順で並び替え
次いで、数値として降順で並び替え
さらに文字コードの昇順で並び替え
で、文字コードの降順で並び替え
連想配列の場合
キーをソート
キーを数値として昇順で並び替え
キーを数値として降順で並び替え
キーを文字コードの昇順で並び替え
キーを文字コードの降順で並び替え
値の順にキーをソート
値を数値として昇順で並び替え
値を数値として降順で並び替え
値を文字コードの昇順で並び替え
値を文字コードの降順で並び替え
コレだけあれば、たいていは足りるハズ。
ただ、連想配列の中の値の順でキーをソートというのは、いったん値を配列に入れてからソートした方がプログラムを読むには分かり易いような気もしたりして・・・。一手間かかるけど。
注意とかコツのような何か
調べてみると、sort に渡すブロックの中の変数を my で宣言するのは NG とのことでした。詳しく調べてないけど、歴史的経緯なんでしょうね。
同じ理由で $a と $b を別の名前にするのもダメっぽそうですよね。試してないけど(^_^;)。