Perl spliceコマンド

splice( ARRAY, OFFSET, [LENGTH, LIST] )

配列[ARRAY]の[OFFSET]番目から[LENGTH]個の要素を削除して代わりに[LIST]を挿入します。

  • [OFFSET]は0から始まります。
  • [LIST]が省略された場合は単純に削除します。
  • [LENGTH]も省略された場合は[OFFSET]以降の全ての要素を削除します。
  • リストコンテキストで呼び出された場合は削除した要素のリストを返します。
  • スカラーコンテキストで呼び出された場合は最後に削除した要素を返します。

単純に削除したい場合

my @list = ( "A", "B", "C", "D", "E" );
# 単純削除 : [LIST]を省略する
splice( @list, 2, 2 );
print join( ",", @list ), "\n";
> A,B,E

要素を削除せずに挿入だけした場合

my @list = ( "A", "B", "C", "D", "E" );
# 挿入のみ : [LENGTH]に0を指定する
splice( @list, 2, 0, "X", "Y", "Z" );
print join( ",", @list ), "\n";
> A,B,X,Y,Z,C,D,E