我有一個Perl腳本,說「process_output.pl」這是在下列情況下使用:行緩衝讀取在Perl
long_running_command | 「process_output.pl」
的process_output腳本,需要像Unix的「三通」命令,因爲它得到生成的轉儲「long_running_command」到終端的輸出,並且除了捕捉輸出到文本文件,並且在「long_running_command」結尾處,以文本文件作爲輸入分叉另一個進程。
我目前看到的行爲是,「long_running_command」的輸出只有在完成而不是在生成時轉儲輸出時纔會轉儲到終端。我需要做一些特別的事情來解決這個問題嗎?
基於我在其他幾個stackexchange帖子的閱讀,我試圖在 「process_output.pl」 下面,沒有太大的幫助:
select(STDOUT); $| =1;
select(STDIN); $| =1; # Not sure even if this is needed
use FileHandle; STDOUT->autoflush(1);
stdbuf -oL -eL long_running_command | "process_output.pl"
有關如何繼續的任何指示 進一步。
感謝 AB