【Perl】配列の要素を昇順・降順に並べ替える(ソート)

Perl

この記事では、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で配列を昇順や降順にソートする方法を紹介しました。配列の内容が文字列なのか、数値なのかにより適切な方法を選択しましょう。

タイトルとURLをコピーしました