用于读取数组的perl脚本,并将特定模式从第一个数组放到第二个数组中

时间:2012-08-08 14:16:08

标签: perl

我正在尝试编写一个perl脚本,我将数据读入一个数组,这是一个像这样的命令的输出:

my @a = system "p4 changes -u";

现在数据已进入数组@a看起来像这样:

change 256789 on date.. by user@workspace 'some description'
change 256788 on date.. by user@workspace 'some description'
..........................................................
...........................................................
.
.
..
...

有很多行

现在我想做的是将每个条目的“some description”字段放到另一个数组中,然后在其中附加一些常用文本。
任何想法如何做到这一点,我对Perl相对较新,所以没有多少想法如何去做。

2 个答案:

答案 0 :(得分:2)

system执行命令但不捕获输出。要捕获输出,您可以使用backticks(`)qx运算符。

#!/usr/bin/env perl

use strict;
use warnings;

my @descriptions;
for (qx{p4 changes -u}) {
    chomp;
    push @descriptions, /(?<=')(.+)(?=')/;
}

答案 1 :(得分:0)

也许就是这样:

@b = map { /('[^']+')/; "abc $1 xyz"; } @a;
print "$_\n" for @b;