【发布时间】:2012-01-15 10:07:55
【问题描述】:
我正在尝试创建一个具有多处理能力的小型 Perl 程序。由于我的要求中到处都有一些小的更改,因此我无法在任何地方找到任何类似的示例脚本。
我需要从 STDIN 读取一个大的日志文件,然后给第一个子进程的前 N 行(又是一个大的数字),然后给第二个子进程等接下来的 N 行。我还定义了一个常量这是允许同时运行的最大子进程数。一旦达到孩子的最大数量,父母将等待孩子完成它的工作并给它另外 N 行。
父进程还收集每个子进程完成时返回的多行(5-10 行)输出并将其存储在数组中。然后Parent继续处理这个数组内容并最终显示结果。
是否有更好的示例脚本可供我修改和使用,或者有人可以在这里分享一个帮助我吗?我更喜欢只使用管道进行进程间通信,并尽可能让事情变得更简单。
编辑: 有人可以举例说明如何仅使用 IO::Handle 模块中的管道来完成此操作吗?
【问题讨论】: