Я пытаюсь создать небольшую программу на Perl, которая имеет несколько возможностей обработки. Поскольку в моих требованиях есть кое-какие небольшие изменения, я нигде не могу найти подобные примеры сценариев.
Мне нужно прочитать большой лог-файл из STDIN и дать первое N число (опять большое число) строк первому дочернему процессу, а затем следующее N строк для второго дочернего процесса и т.д. это максимальное количество дочерних процессов, разрешенных для одновременного запуска. Как только будет достигнуто максимальное количество детей, родитель будет ждать, пока ребенок закончит свою работу, и предоставит ему еще N строк.
Родительский процесс также собирает многострочный (5-10 строк) вывод, возвращаемый каждым дочерним процессом по завершении, и сохраняет его в массиве. Затем родительский объект продолжает обрабатывать содержимое этого массива и, наконец, отображать результаты.
Есть ли лучший пример сценария, который я могу изменить и использовать, или кто-то может мне помочь, поделившись им здесь? Я предпочитаю использовать только каналы для взаимодействия процессов и максимально упростить процесс.
Edit:
Может кто-нибудь показать пример того, как это можно сделать только с помощью каналов из модуля IO :: Handle?