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関数