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コマンドを実行しますが、出力をキャプチャしません。出力をキャプチャするには、backticks(`)または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 に答える