这是我的源数组:
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',
);
我可以循环遍历堆栈数组然后拆分
推到另一个阵列,但我正在寻找一种精益的方式
编码这个。
有什么想法吗?
答案 0 :(得分:3)
my @other_stack = map {(split/~/)[2]} @raw_stack;
答案 1 :(得分:2)
使用map
列出转化而不是push
。如果项目是固定宽度,请使用index
/ substr
或unpack
。这通常比使用正则表达式的split更快。