Item Description: Provides a simplified way to run multiple parallel forks within a program.

Review Synopsis:

Parallel::ForkManager automates the sometimes tedious process of running multiple parallel forks from a script. It also allows you to control how many forks run at once, and keeps that many running, which simplifies a rather complex task. It is extremely simple in operation and well documented.

Who should use it?

Anyone who wants to implement forking in a script. I wrote a fair bit of forking code before discovering this module, and I must say, I don't think I'll go back. It makes life much easier, and isn't that what good perl modules are supposed to do?

Who should NOT use it?

There are some forking scenarios which are probably too complex for it, although I haven't found any of those myself yet. It might be difficult to use for socket server applications, since controlling the timing of the forks could be tricky. Or fun, depending on your perspective.


Excellent - clear examples and concise wording. Even I understood it.

Personal Notes

I've converted almost all of my old fork code to run with this module. It took just minutes, and performance improved (I was spawning forks N at a time, waiting for them all to die, and then spawning N more. This thing keeps N forks running all the time without Ne+02 lines of code ;-). Highly recommended!!

Replies are listed 'Best First'.
Re: Parallel::ForkManager
by RhetTbull (Curate) on Aug 29, 2001 at 05:36 UTC
    Great write-up. Just to make it easier to look up, here's a link to the CPAN page: Parallel::ForkManager.
Re: Parallel::ForkManager
by andye (Curate) on Feb 21, 2007 at 17:57 UTC
    Just wanted to add my agreement to Clownburner's excellent review: this module is indeed the best thing since the invention of the breadknife.

    Very easy to use, documentation very clear. Lets you get on with whatever-it-was that you wanted to be doing in parallel, instead of fiddling around with PIDs and so on.

    5 Stars. 10/10. 100%.