http://qs321.pair.com?node_id=176222

moof1138 has asked for the wisdom of the Perl Monks concerning the following question:

I have a program that I would like to fire off some number of child processes (each a perl script with a separate argument that the parent supplies) to do a somewhat time consuming thing. Right now I want it to fire off 30 sub-processes, at some point in the future that number will likely grow to about 150. I would like all the child processes to be started at about the same time, since the thing they are doing - building reports on different fairly busy and occasionally slow to respond servers, and putting those reports in a database - is somewhat time consuming but not bandwidth or CPU consuming. It would be fine if it died after the children were fired off. The script currently serially builds reports and it is slow and can be unreliable if a remote host decides to quit cooperating or kill its session, which is why I am thinking this approach would be great. As I understand them, system() and backticks wait for the process to finish (even if you use &), while fork(), and exec() seem to only replace a single running process with another. Is what I want to do possible with Perl? If so how?