我想創建一個具有多處理功能的小Perl程序。由於我的要求在這裏和那裏有一些小的變化,我無法在任何地方找到任何類似的示例腳本。在Perl中分叉多個孩子並使用管道進行雙向通信
我需要閱讀從STDIN一個大的日誌文件,並給線到第一子進程的第N個(也是一個巨大的數字),然後到第二個子進程的下一N多等我也有一個恆定定義哪個是允許併發運行的子進程的最大數量。一旦達到最大數量的孩子,父母會等待孩子完成工作,並給予另外N個線路。
父進程還收集每個子進程返回的多行(5-10行)輸出,當它們完成並將其存儲在數組中時。 Parent然後繼續處理該數組內容並最終顯示結果。
有沒有更好的示例腳本,我可以修改和使用,或有人可以幫助我在這裏分享一個嗎?我更喜歡只使用管道進行過程互通,並儘可能簡化事情。
編輯: 有人可以演示如何使用IO :: Handle模塊中的管道完成這個任務嗎?
看起來像我真正想要的。但是,我只在有限數量的Perl模塊可用的受限環境中運行此腳本。我們可以單獨使用IO :: Handle並實現相同嗎? – meharo