perlの配列関数 splice

配列関数の中でちょっと特殊っぽい関数 spliceについて書き留めておく。
push/pop/shift/unshiftなどは配列の最初から、または最後から要素を足したり引いたりする関数だったが、spliceは途中の要素に対して操作できる。

形式としては splice (ARRAY , OFFSET , LENGTH ,LIST) のようになる。
わかりやすく書くと splice(対象配列の,ここから,これだけの長さを削除し,そこにこのリストを挿入)。

具体例は以下のような感じ。

my @array = qw(a b c d e f );
my @xyz = qw(x y z);
my @removed = splice (@array , 1 , 4 , @xyz);
print "\@array = @array\n";
print "\@removed = @removed\n";

> @array = a x y z f
> @removed = b c d e

spliceの後をわかりやすく説明すると@arrayのリストの添え字の1(b)から4(e)までを削除して配列@removedに突っ込んで、そこに配列@xyzのリスト(x y z)を入れてねという意味になります。

# 参考文書

新版Perl言語プログラミングレッスン入門編

新版Perl言語プログラミングレッスン入門編