splice関数 - 配列の要素の複雑な操作
splice関数を使用すると配列の要素に対して複雑な操作を行うことができます。複数の要素を取り出したり、置換したりすることができます。
複数要素の取り出し
次の方法で配列の複数要素を取り出すことができます。
# 複数要素の取り出し @parts = splice @array, $pos, $length;
$posは取り出しの開始位置を指定します。$lengthには、取り出す長さを指定します。複数要素の取り出しにおいて$lengthを省略すると$posの位置から配列の末尾までが対象になります。
複数要素の置換
第4引数に、配列を指定することで、指定した配列で置換を行うことができます。対象の配列は、上記の構文と同じです。
# 複数要素の置換 splice @array, $pos, $length, @replace;
splice関数の使いどころ
まず最初に、shift関数、unshift関数、pop関数、push関数の四つの関数を使って配列操作のプログラムを記述できるかどうかを検討してみてください。9割のプログラムは、この四つの関数を使えば、記述できます。
その上で、複雑な操作が必要な場合にsplice関数を使用してください。
サンプルプログラム
複数要素を取り出すサンプルプログラムです。@partsには(2,3)が代入され@numsは(1, 4)になります。
# 複数要素の取り出し my @nums = (1, 2, 3, 4); my @parts = splice @nums, 1, 2;
複数の要素を置換するサンプルです。@numsは(1, 5, 6, 4)になります。
# 複数要素の置換 my @nums = (1, 2, 3, 4); my @replace = (5, 6); splice @nums, 1, 2, @replace;