Нужно скопировать только часть строки массива в другой массив - PullRequest
1 голос
/ 24 февраля 2012

Это мой исходный массив:

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 ]

3 голосов
/ 24 февраля 2012
my @other_stack = map {(split/~/)[2]} @raw_stack;
2 голосов
/ 24 февраля 2012

Используйте map для отображения списка вместо push.Используйте index / substr или unpack, если элементы имеют фиксированную ширину.Обычно это быстрее, чем split, использующий регулярное выражение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...