Perlで配列の先頭何要素か以外を抜き出す ― 2022年12月05日 01時47分
この記事はPerl Advent Calendar 2022の5日目の分です。
Perlで配列の先頭n要素以外を抜き出したい——例えば配列('a', 'b', 'c', 'd', 'e')
から先頭2要素以外を抜き出して配列('c', 'd', 'e')
を得たい——とき、最近はList::Util
モジュールのtail
関数を使えます。
tail
関数は配列の末尾n要素を抜き出す関数ですが、抜き出す要素数として負数-mを指定すると、先頭m要素以外の要素を返します。
use List::Util qw(tail);
my @array1 = qw(a b c d e);
my @array2 = tail -2, @array1;
# @array2の内容は('c', 'd', 'e')
List::Util
モジュールはコアモジュール(Perl本体と一緒にインストールされるモジュール)であり、Perl 5.28以降なら追加のモジュールインストールなしにtail
関数を使えます。それより古いPerlでは、List::Util
の新しいバージョン(1.50以降)をインストールする必要があります。
以前からある方法として、配列スライスを使うこともできます。
my @array1 = qw(a b c d e);
my @array2 = @array1[2 .. $#array1];
# @array2の内容は('c', 'd', 'e')
最近のコメント