Loose-Info.com
Last Update 2008/05/18
TOP - Perl - 関数 - sort

指定したリスト値をソートします。
サブルーチンやブロックを利用する場合は、比較に$aと$bの2つの変数を利用します。

戻り値1 = sort リスト値1

戻り値1
リスト値1をソートしたリスト値
リスト値1
ソートの対象となるリスト値

戻り値1 = sort 名前1 リスト値1

戻り値1
リスト値1をソートしたリスト値
名前1
ソートに使用するサブルーチン名 サブルーチンの返す値
負 : $aが$bよりも前
0 : 等値
正 : $bが$aよりも前
リスト値1
ソートの対象となるリスト値

戻り値1 = sort ブロック1 リスト値1

戻り値1
リスト値1をソートしたリスト値
ブロック1
ソートに使用するコードを記述したブロック ブロックの返す値
負 : $aが$bよりも前
0 : 等値
正 : $bが$aよりも前
リスト値1
ソートの対象となるリスト値

(例)
@a_test1 = ("abc", "ddd", "bfg", "ce"); @a_test2 = (25, 42, 33, 15, 7); # 文字列としてソートされる @a_ret = sort @a_test1; print "@a_ret\n"; # 数値も文字列として処理される @a_ret = sort @a_test2; print "@a_ret\n"; # 数値用のサブルーチンを用意する sub n_sort {$a <=> $b;} @a_ret = sort n_sort @a_test2; print "@a_ret\n"; # ブロックを利用して降順にソート @a_ret = sort {$b cmp $a;} @a_test1; print "@a_ret\n";

実行結果
abc bfg ce ddd 15 25 33 42 7 7 15 25 33 42 ddd ce bfg abc