Proc::Queue limits the number of forked processes that can be running concurrently. This module lets you parallelise a perl program using the fork, exit, wait and waitpid calls as usual but without taking care of creating too many processes and overloading the machine.