如何将数组拆分成另一个数组

时间:2010-12-13 17:50:27

标签: perl

my  @array = [ 'TEXT[12]|SubText' , 'TEXT2|subText2' , 'TEXT3[34]' ] ;

我把这个数组看成另一个数组,比如

('TEXT','12','SubText','TEXT2','SubText2','TEXT3','34')

我真的不知道我用什么额外的模块?

2 个答案:

答案 0 :(得分:4)

您是在[]还是|分割数组元素?如果是,你可以做;

my @array = ('TEXT[12]|SubText' , 'TEXT2|subText2' , 'TEXT3[34]');
my @result;

foreach(@array) {
        push @result,split/[\[\]\|]+/;
}

Ideone Link

答案 1 :(得分:3)

这可能不符合你的想法。它创建一个匿名数组,其元素为'TEXT [12] | SubText','TEXT2 | subText2','TEXT3 [34]',然后将其指定为@array的第一个元素!

但如果它 你想做什么,那么你只需添加解除引用它的额外步骤:

my  @array = [ 'TEXT[12]|SubText' , 'TEXT2|subText2' , 'TEXT3[34]' ] ;

for my $item (@array) {
    my @inner_elem_array = map { /(\w+)/g } @$item;
    #Do stuff with the new array here.
}

编辑:如果这对您没有任何意义,我建议您阅读referencesregular expressions