配列(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