任意の位置の配列操作
back
splice を使う
splice @ARRAY, offset [, length, [LIST]]
基本は削除処理だが、削除した箇所にリストを追加することができる。
削除した要素は無くなり、該当添え字以降の要素が削除された分シフトされる。
削除数(length)を0にすれば、単純挿入になる。
戻り値は、削除された部分リスト
■ 指定要素以降の全ての要素を削除
@array = (0, 1, 2, 3, 4, 5, 6);
splice @array, 2;
■ 指定要素以降の連続する要素をいくつか削除
@array = (0, 1, 2, 3, 4, 5, 6);
splice @array, 2, 4;
■ 指定要素を1つ削除
@array = (0, 1, 2, 3, 4, 5, 6);
splice @array, 2, 1;
■ 指定添え字の位置にリストを単純挿入
@array = (0, 1, 2, 3, 4, 5, 6);
splice @array, 2, 0, ("aaa", "bbb");
offset, length に負数を指定した場合は、配列末尾からの位置になる
offset(基準点)は配列末尾からの位置になり、
length は、正数の場合は、offset からの相対位置になるが、負数の場合は、
配列末尾からの絶対位置までが処理対象になる。
多分
back