Parallel::Forker is a Perl package to manage parallel processes that are either subroutines or system commands. Parallel::Forker supports being able to specify complicated expressions to determine which processes run after others, or processes that run when processes others fail.
use Parallel::Forker;
$Fork = new Parallel::Forker(use_sig_child=>1);
$Fork->schedule
(run_on_start => sub {print "child work here...";},
# run_on_start => \&child_subroutine, # Alternative: call a named sub.
run_on_finish => sub {print "parent cleanup here...";},
)->run;
$Fork->wait_all; # Wait for all children to finish
cpan install Parallel::Forker
# Obtain distribution kit
git clone git@github.com:veripool/Parallel-Forker.git
# Build
cd Parallel-Forker
git pull
perl Makefile.PL
make
make test
make install
See the Parallel::Forker manpage after installation.
The latest version is available from CPAN and from https://www.veripool.org/parallel-forker.
Copyright 2002-2020 by Wilson Snyder. This package is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License Version 3 or the Perl Artistic License Version 2.0.
Wilson Snyder <wsnyder@wsnyder.org>