Perlスクリプトを使用して特定の出力を画面や他の選択した出力にパイプするにはどうすればよいですか?
ベストアンサー1
別のファイルハンドルを使用してください。
STDOUT
デフォルトでは、とがありますSTDERR
。 Perlの関数はprint
実際にprint STDOUT
。
端末にはSTDOUT
ファイルハンドルが提供され、1
ファイルSTDERR
ハンドルが提供されます2
。
以下は、各ファイルハンドルに印刷し、各ファイルハンドルを/ dev / nullにリダイレクトする例です。
$ perl -e 'print STDOUT "foo\n"; print STDERR "bar\n";'
foo
bar
$ perl -e 'print STDOUT "foo\n"; print STDERR "bar\n";' 1> /dev/null
bar
% perl -e 'print STDOUT "foo\n"; print STDERR "bar\n";' 2> /dev/null
foo
- 最初のコマンドは両方とも印刷します。
- 2番目のコマンドは削除し
STDOUT
て印刷するだけです。STDERR
- 3番目のコマンドは削除し
STDERR
て印刷するだけです。STDOUT
独自のファイルハンドル(ログファイルなど)を宣言し、そのファイルハンドルとして印刷することもできます。望むよりperldoc -f open
。