从特定索引到结尾删除数组的元素,直到有一个有效元素

时间:2011-07-29 21:14:18

标签: perl

嗨,我有这个数组说

name[0] =  hello
name[1] = bye
name[2] = ok
name[3] = wassup
and so on....

我想将索引2中的元素弹出到数组的末尾,因为我想用新的元素替换它们。我正在运行一个循环,因此无法跟踪各个索引但是能够跟踪元素2.那么我怎样才能将元素从2开始弹出到其余元素直到定义数组?

我正在使用

delete array[2,..]

这是有效的吗?

3 个答案:

答案 0 :(得分:4)

这是splice功能的用途;只需splice @array, 2;

答案 1 :(得分:0)

将数组切片分配给自身:

@array = @array[0,1];

答案 2 :(得分:0)

my @array = ( ... stuff ...);
@array = @array[0 .. 1];

随便拿走你想要的东西,剩下的就剩下了。

您可能正在考虑匹配某个数组值:

my @array = ( stuff );
my @rest;

for (0 .. $#array) {
    if ($array[$_] =~ /^ok$/) { push @rest, @array[$_ .. $#array]; last }
}