需要仅将数组字符串的一部分复制到另一个数组

时间:2012-02-24 09:32:31

标签: perl

这是我的源数组:

my @raw_stack = (
    'a1~a2~a3~a4~a5',
    'b1~b2~b3~b4~b5',
    'c1~c2~c3~c4~c5',
    'd1~d2~d3~d4~d5',
    'e1~e2~e3~e4~e5',
);

我希望以'〜'模式获得第3个值,然后放置它 到另一个阵列。

另一个数组现在应该如下所示:

my @other_stack = (
    'a3',
    'b3',
    'c3',
    'd3',
    'e3',
);

我可以循环遍历堆栈数组然后拆分
推到另一个阵列,但我正在寻找一种精益的方式 编码这个。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

my @other_stack = map {(split/~/)[2]} @raw_stack;

答案 1 :(得分:2)

使用map列出转化而不是push。如果项目是固定宽度,请使用index / substrunpack。这通常比使用正则表达式的split更快。