Perlのsort関数を逆引き式でまとめてみます
辞書順の昇順
sort @LIST;
または sort {$a cmp $b} @LIST;
例
文字列
my @data = qw(b a ab aa bc bb B A AB BA);
print "Case1: ", join(", ", sort @data), "\n";
print "Case2: ", join(", ", sort {$a cmp $b} @data), "\n";
実行結果
Case1: A, AB, B, BA, a, aa, ab, b, bb, bc
Case2: A, AB, B, BA, a, aa, ab, b, bb, bc
大文字、小文字は区別される。
数列
my @nums = qw(100 2 1 10 11 12);
print "Case3: ", join(", ", sort @nums), "\n";
print "Case4: ", join(", ", sort {$a cmp $b} @nums), "\n";
実行結果
Case3: 1, 10, 100, 11, 12, 2
Case4: 1, 10, 100, 11, 12, 2
辞書順の昇順(大文字、小文字を区別しない)
sort {fc($a) cmp fc($b)} @LIST;
例
文字列
my @data = qw(b a ab aa bc bb B A AB BA);
print "Case5: ", join(", ", sort {fc($a) cmp fc($b)} @data), "\n";
実行結果
Case5: a, A, aa, ab, AB, b, B, BA, bb, bc
大文字、小文字は区別されない。
辞書順の降順
sort {$b cmp $a} @LIST;
例
辞書順の昇順を参考にしてください。
辞書順の降順(大文字、小文字を区別しない)
sort {fc($b) cmp fc($a)} @LIST;
例
辞書順の昇順(大文字、小文字を区別しない)を参考にしてください。
数値の昇順
sort {$a <=> $b} @LIST;
例
文字列
my @data = qw(b a ab aa bc bb B A AB BA);
print "Case6: ", join(", ", sort {$a <=> $b} @data), "\n";
実行結果
Case6: b, a, ab, aa, bc, bb, B, A, AB, BA
比較できないため変わらない。
数列
my @nums = qw(100 2 1 10 11 12);
print "Case7: ", join(", ", sort {$a <=> $b} @nums), "\n";
実行結果
Case7: 1, 2, 10, 11, 12, 100
数値の降順
sort {$b <=> $a} @LIST;
例
数値の昇順を参考にしてください。