如何将一个元素插入数组中,将所有其他元素右移?

yeg*_*256 3 perl

我有一个数组,我想在其中插入一个新元素,将所有其他元素向右移动:

my @a = (2, 5, 4, 8, 1);
# insert 42 into position no. 2
Run Code Online (Sandbox Code Playgroud)

预期结果:

(2, 5, 42, 4, 8, 1);
Run Code Online (Sandbox Code Playgroud)

Ste*_*ich 14

my @a = (2, 5, 4, 8, 1);
splice(@a, 2, 0, 42);   # -> (2, 5, 42, 4, 8, 1)
Run Code Online (Sandbox Code Playgroud)

这意味着:在数组@a位置2中删除0个元素并添加元素42(可以添加更多元素)。有关更多信息,请参阅splice,特别是此用法:

splice ARRAY or EXPR,OFFSET,LENGTH,LIST
Run Code Online (Sandbox Code Playgroud)