splice


splice ARRAY, OFFSET, LENGTH, LIST
splice ARRAY, OFFSET, LENGTH
splice ARRAY, OFFSET

 ARRAYからOFFSETとLENGTHで指定した要素を削除して、LISTを挿入します。削除した要素のリストを返します。
 削除する要素はOFFSET番目からLENGTH個です。LENGTHを省略すると最後まで削除します。
 OFFSETに負の値を使用するとARRAYの末尾から開始位置を計算します。LENGTHに負の値を使用すると後ろにLENGTH個の要素が残るように削除します。
 OFFSETの解釈は$[の値によって変わるので、動きが怪しいときは$[をチェックしましょう。

サンプルプログラム

@a = qw(a b c d e f g);

# 1つ目から2つの要素を削除
@b = @a;
splice @b, 1, 2;	# @b = (a d e f g)

# 4つ目から最後までの要素を削除
@c = @a;
splice @c, 4;	# @c = (a b c)

# 後ろから2つ目から最後までの要素を削除
@d = @a;
splice @d, -2;	# @d = (a b c d e)

# 2つ目から2つの要素を残して削除
@e = @a;
splice @e, 2, -2;	# @e = (a b f g)

# 1つ目から2つの要素を削除し、その場所に(X Y Z)を挿入する
@f = @a;
splice @f, 1, 2, qw(X Y Z);	# @f = (a X Y Z d e f g)

関連項目

配列に値を追加
配列から値を削除
substr関数