0

私は perl の初心者で、wget 要求を実行した後にコマンド画面に表示されるメッセージをキャプチャしようとしています。wget は perl スクリプト内から呼び出されますが、それをキャプチャするためのすべての努力が失敗しました。私は試しました:exec、system、open file、backticks、qxですが、必要な結果が得られませんでした。CPAN で追加のパッケージをインストールできないため、他のモジュールを使用できません。

次のようになります。

#wget http://xxx.broker:8087/brocker-v2/wallet/customerbalance/addon_id/xxxxx/country_id/oml/msisdn/xxxxx/pin/xxxx/

画面上の応答は次のようになります。

サーバーに接続しています....
いくつかの応答と詳細がここに
応答ok 200

上記の行は、変数またはファイルにキャプチャしたいものです。

私が試したことのいくつか:

@wget_response = qx($wget_command);

($stdout, $stderr, $exit) = capture {
 system( $wget_command, @wget_resp );
};

open (my $my_file, '>', 'wget_response') or die "Could not open file: $!";
my $output = `$wget_command`;
die "$!" if $?;
print $my_file $output;
4

1 に答える 1

0

コメントで述べたように、wget コマンドで stderr をリダイレクトしてみてください。そうすれば、 my $output で始まる行は次のようになります$wget_command 2>&1

これにより、変数のすべての出力が取得されます。

于 2013-10-29T15:33:45.897 に答える