Perl 將一些內容從腳本中輸出,有些內容輸出到螢幕上

Perl 將一些內容從腳本中輸出,有些內容輸出到螢幕上

如何透過 Perl 腳本將某些輸出傳送到螢幕以及其他選定的輸出?

答案1

透過使用不同的檔案句柄。

預設情況下,您將同時擁有STDOUTSTDERR。 Perl 中的函數print其實是 的簡寫print STDOUT

在您的終端機中STDOUT給出了文件句柄1STDERR給出了文件句柄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
  • 第一個命令列印兩者。
  • 第二個指令丟棄STDOUT並僅列印STDERR
  • 第三個命令丟棄STDERR並僅列印STDOUT

您也可以聲明自己的檔案句柄(例如日誌檔案)並列印到該檔案句柄。看perldoc -f open

答案2

您可能想閱讀 perlipc 文檔,特別是有關命名管道的部分。

http://perldoc.perl.org/perlipc.html#Named-Pipes

perlipc - Perl 進程間通訊(訊號、fifo、管道、安全子進程、套接字和信號量)

如果您需要與外部程式進行雙向(讀取和寫入)通信,那麼 IPC::Open2 或 IPC::Open3 模組(標準 perl 庫,也記錄在上面的 URL 中)將很有用。

相關內容