配列(8) splice

続いてspliceです。置き換える範囲の指定は、オフセット(要素番号)と長さ(要素数)で指定すればいいみたいですね。長さに0を指定すると、要素を挿入できます。
このspliceは万能で、push, shift, pop, unshift と同じ事がこの関数1つでできちゃいます。便利ですね。

# arrtest9.pl
my @arr = ("A", "B", "C", "D", "E");
print @arr, "\n";
 
# 2番から3つを削除
my @removed = splice(@arr, 2, 3);
print "Removed: ", @removed, "\n";
print @arr, "\n";
 
# 0番から2つを置き換え
my @replaced = splice(@arr, 0, 2, ("s", "s"));
print "Replaced: ", @replaced, "\n";
print @arr, "\n";
 
# 1番に挿入
splice(@arr, 1, 0, ("mile"));
print "Inserted: mile\n";
print @arr, "\n";

実行結果です。

D:\dev\perl>perl arrtest9.pl
ABCDE
Removed: CDE
AB
Replaced: AB
ss
Inserted: mile
smiles