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


Copyright(C) 2006-2018 CLAYPOT. All Rights Reserved.