in reply to Re: Struggling with fork, waitpid, wait
in thread Struggling with fork, waitpid, wait

I definitely agree...
For it's complexity (or so it might seem), Parallel::ForkManager was, I thought, surprisingly easy to get get working. The example code on the module's page was helpful, and the explanation of the methods was more than sufficient. I'd recommend that module as well.

The number of forked processes to run at one time is easily set... maxprocs is a parameter to the object. Just calculate that ahead of time and drop it in. Much faster than doing it manually from the parent process.
my $max_procs = 8; my $pm = new Parallel::ForkManager($max_procs);
You can also add in run_on_finish for post_process code, and wait_all_children forces the parent to wait for all processes to complete before continuing.

HTH.