如何从Perl数组中删除元素?

1 arrays perl

我有一个非常大的数组,我想从数组中删除第2,第8,第14等元素.我的阵列目前是这样的:

Element1 x A B C
Element 2 y A B C
Element 3 z A B C
Run Code Online (Sandbox Code Playgroud)

从广义上讲,我想删除x,y和z(仅作为示例,我的数组稍微复杂一些).然后拉起剩下的部分.如同,我不希望他们的位置有空白.我想得到:

Element 1 A B C
Element 2 A B C
Element 3 A B C
Run Code Online (Sandbox Code Playgroud)

我尝试用我的数组"todelete"尝试一下:

print "#Before Deleting"; print
$todelete[0]; print "\n"; print
$todelete[2]; print "\n"; print
$todelete[3];

for ($count=2; $count<@todelete;
$count=$count+6) {  delete
$todelete[$count]; }

print "#After Deleting"; print
$todelete[0]; print "\n"; print
$todelete[2]; print "\n"; print
$todelete[3];$todelete[3];
Run Code Online (Sandbox Code Playgroud)

但是,目前,我认为它只是将我的价值统一起来,因为当我打印结果时,它告诉我:

Use of uninitialized value in print 
Run Code Online (Sandbox Code Playgroud)

建议?

Por*_*lus 5

你想要的功能是splice.

  • @poutine:有人很棒,因为他们已经阅读了[每次安装perl时附带的基本文档](http://perldoc.perl.org/functions/splice.html)?这不是设置酒吧有点低? (3认同)
  • @poutine,传统的解决方案是向后删除.而不是2,8,14,......去14,8,2.这样,索引在到达元素之前不会改变. (3认同)