5部 関数リファレンス

sort

sort [SUBNAME] LIST
sort [BLOCK] LIST



配列LISTの値をソートして返します。引数SUBNAMEには、ソートの比較式を指定できます(<=>演算子やcmp演算子が便利です)。SUBNAMEBLOCKを省略すると、標準の文字列比較の順番でソートが行なわれます。SUBNAMEの代わりに、無名のインラインソートルーチンとして、BLOCKを書くことができます。

sortの使い方

# 文字の順でソート
@sort_array = sort @array;

# 文字の順で逆順にソート
@sort_array = sort {$b cmp $a} @array;

# 数値の昇順にソート
@sort_array = sort {$a <=> $b} @files;

# 数値の降順にソート
@sort_array = sort {$b <=> $a} @files;

# サブルーチン名を指定してソート
sub byage {
	$age{$a} <=> $age{$b}; # 整数を仮定
}
@sort_array = sort byage @class; 

引数SUBNAMEは、スカラ変数でもよく、その場合には、その値が使用するサブルーチンの名前と解釈されます。

関連記事