この記事では、Perlで配列を昇順や降順にソートする方法を紹介します。文字列の場合と数値の場合でそれぞれのサンプルコードを紹介しています。
文字列のソート(辞書順ソート)
文字列の昇順ソート
文字列の配列を辞書順にソートするにはsortを使用します。
#!/usr/bin/perl
use strict;
use warnings;
my @fruits = ('banana', 'apple', 'pear', 'orange', 'grape', 'cherry');
# 昇順ソート ★
my @sorted = sort @fruits;
# 結果を表示
print "@sorted\n";
実行結果
apple banana cherry grape orange pear
文字列の降順ソート
文字列の配列を辞書の逆順にソートするにはreverse sortを使用します。
#!/usr/bin/perl
use strict;
use warnings;
my @fruits = ('banana', 'apple', 'pear', 'orange', 'grape', 'cherry');
# 降順ソート ★
my @sorted = reverse sort @fruits;
# 結果を表示
print "@sorted\n";
実行結果
pear orange grape cherry banana apple
数値のソート
数値の昇順ソート
数値の配列を昇順にソートするにはsort {$a <=> $b} @arrayを使用します。
#!/usr/bin/perl
use strict;
use warnings;
# サンプル配列
my @numbers = (4, 1, 11, 2, 8, 3);
# 昇順ソート ★
my @sorted = sort {$a <=> $b} @numbers;
# 結果を表示
print "@sorted\n";
実行結果
1 2 3 4 8 11
数値の降順ソート
数値の配列を降順にソートするにはsort {$b <=> $a} @arrayを使用します。降順の場合、書き方がbとaの比較となっている点に注意します。
#!/usr/bin/perl
use strict;
use warnings;
# サンプル配列
my @numbers = (4, 1, 11, 2, 8, 3);
# 降順ソート ★
my @sorted = sort {$b <=> $a} @numbers;
# 結果を表示
print "@sorted\n";
実行結果
11 8 4 3 2 1
まとめ
本記事では、Perlで配列を昇順や降順にソートする方法を紹介しました。配列の内容が文字列なのか、数値なのかにより適切な方法を選択しましょう。