##
...
foreach (@jobs) {
die "Fork failed: $!\n" unless defined (my $pid = fork);
exit &process($_) unless $pid;
}
1 until -1 == wait;
...
####
...
my $max = 4;
my $c = 0;
foreach (@jobs) {
wait unless ++$c <= $max;
die "Fork failed: $!\n" unless defined (my $pid = fork);
exit &process($_) unless $pid;
}
1 until -1 == wait;
...