0

我正在尝试编写一个 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 比较陌生,所以没有太多想法如何做到这一点。

4

2 回答 2

2

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

#!/usr/bin/env perl

use strict;
use warnings;

my @descriptions;
for (qx{p4 changes -u}) {
    chomp;
    push @descriptions, /(?<=')(.+)(?=')/;
}
于 2012-08-08T14:36:18.560 回答
0

也许是这样的:

@b = map { /('[^']+')/; "abc $1 xyz"; } @a;
print "$_\n" for @b;
于 2012-08-08T14:42:38.557 回答