Last Update 2008/05/18
指定したリスト値をソートします。
サブルーチンやブロックを利用する場合は、比較に$aと$bの2つの変数を利用します。
サブルーチンやブロックを利用する場合は、比較に$aと$bの2つの変数を利用します。
戻り値1 = sort リスト値1
戻り値1
リスト値1をソートしたリスト値
リスト値1
ソートの対象となるリスト値
戻り値1 = sort 名前1 リスト値1
戻り値1
リスト値1をソートしたリスト値
名前1
ソートに使用するサブルーチン名
サブルーチンの返す値
負 : $aが$bよりも前
0 : 等値
正 : $bが$aよりも前
0 : 等値
正 : $bが$aよりも前
リスト値1
ソートの対象となるリスト値
戻り値1 = sort ブロック1 リスト値1
戻り値1
リスト値1をソートしたリスト値
ブロック1
ソートに使用するコードを記述したブロック
ブロックの返す値
負 : $aが$bよりも前
0 : 等値
正 : $bが$aよりも前
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