如何在perl腳本中產生其他程序,並立即繼續Perl處理(而不是暫停,直到產生的程序終止)? 是否有可能在運行時處理來自衍生程序的輸出,而不是等待它結束?如何在perl腳本中產生其他程序並立即繼續Perl處理?
1
A
回答
6
您可以使用open
這個(用兩個命令行參數運行程序/bin/some/program
):
open my $fh, "-|", "/bin/some/program", "cmdline_argument_1", "cmdline_argument_2";
while (my $line = readline($fh)) {
print "Program said: $line";
}
從$fh
閱讀會給你你正在運行的程序的標準輸出。
其他的方式工作的,以及:
open my $fh, "|-", "/bin/some/program";
say $fh "Hello!";
你的文件句柄到生成過程的標準輸入寫此管道的一切。
如果要讀取和寫入同一進程,請查看IPC::Open3
和IPC::Cmd
模塊。
1
要在後臺運行程序並「繼續」,您只需在命令末尾添加「&」(假設您使用的是Linux)。例如:system("command &");
請注意system("command", "arg1", "&");
將不起作用,因爲它會將「&」傳遞給命令而不傳遞給shell。你可以簡單地打印命令的輸出:print system("command");
相關問題
- 1. Perl或批處理在其他Excel
- 2. Perl如何在繼續執行其他線程的情況下殺死perl中的'流氓'線程
- 3. 我如何通過從其他perl腳本的輸入在批處理文件
- 4. Perl編程:繼續塊
- 5. 如何在shell腳本中啓動程序並使shell腳本繼續,即使程序保持打開狀態
- 6. Perl:啓動一個shell腳本並繼續而不用等待
- 7. 如何從一個perl腳本調用多個perl腳本並生成輸出?
- 8. 在Perl腳本中找到其他腳本
- 9. 如何通過自定義Perl腳本處理合並衝突
- 10. 如何捕獲異常但導致perl腳本繼續執行?
- 11. 立即重新編寫並繼續執行php腳本
- 12. Perl不會繼續
- 13. 如何測試獨立的Perl腳本?
- 14. Perl腳本來處理文本文件
- 15. 在perl w /網站中獲取函數不會在perl腳本中產生值
- 16. 如何將幾行批處理腳本轉換爲perl腳本
- 17. 如何在Perl腳本中運行Perl腳本?
- 18. 在mysql中繼續處理程序
- 19. 如何在shell腳本中處理Perl數組元素?
- 20. 如何在cygwin下的Perl腳本中處理箭頭鍵?
- 21. Perl - 調用其他腳本並在運行時顯示輸出
- 22. 用數據庫處理Perl腳本
- 23. 如何立即更改MouseEvent處理程序中jLabel的文本?
- 24. 在Linux中,如何將用戶更改爲perl中的root並繼續運行此腳本?如何在perl中導出代理?
- 25. 處理在Perl
- 26. Perl:將參數傳遞給信號處理程序會導致處理程序立即運行
- 27. 如何在Perl腳本
- 28. 繼續處理LFTP後的Bash腳本
- 29. 批處理腳本「繼續」循環?
- 30. 如何從perl腳本中守護一個perl腳本?
[Perl常見問題解答8:如何在後臺啓動進程?](http://learn.perl.org/faq/perlfaq8.html#How -do-I-start-a-process-in-the-the-background-),http://stackoverflow.com/questions/2711520/how-can-i-run-perl-system-commands-in-the-background http://stackoverflow.com/questions/2133910/how-can-i-fire-and-forget-a-process-in-perl – daxim