List::Util - リストに関するユーティリティ
List::Utilはリストあるいは配列に対するさまざまな操作を提供するモジュールです。
# List::Utilの読み込み use List::Util; # 関数をインポートする場合 use List::Util 'max', 'min';
max関数 - 最大値
配列の要素の最大値を求めるにはmaxを使用します。
# 最大値を求める my @nums = (5, 3, 4); my $max = List::Util::max(@nums); # 5 print "$max\n";
min関数 - 最小値
配列の要素の最小値を求めるにはminを使用します。
# 最小値を求める my @nums = (5, 3, 4); my $min = List::Util::min(@nums); # 3 print "$min\n";
sum関数 - 合計
配列の要素の合計を求めるにはsumを使用します。
# 合計を求める my @nums = (5, 3, 4); my $min = List::Util::sum(@nums); # 12 print "$min\n";
shuffle関数 - 要素の順番をランダムに入れ替え
配列の要素の順番をランダムに入れ替えるにはshuffleを使用します。
# 要素の順番をランダムに入れ替える my @nums = (5, 3, 4, 7, 2, 9); my @nums_shuffle = List::Util::shuffle(@nums); # 2 5 7 3 9 4 (毎回変わる) print "@nums_shuffle\n";
first関数 - 条件にマッチした最初の要素を取得
条件にマッチした最初の要素を取得するにはfirstを使用します。配列のそれぞれの要素はデフォルト変数「$_」に渡されてきます。
# マッチした最初のものを取得 my @nums = (5, 3, 4, 9, 2, 7); my $match_first = List::Util::first { $_ > 5 } @nums; # 9 print "$match_first\n";
map関数と構文が似ているのでmap関数についても参考にしてください。
uniq関数 - 重複のない集合を取得する
重複のない集合を取得するには、uniq関数を使用します。
# 重複のない集合を取得する my @nums = (5, 5, 5, 1, 3, 3); my @no_dup_nums = List::Util::uniq(@nums); # 5 1 3 print "@no_dup_nums\n";