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

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

I'm a bit new to IPC and forking.

I'm trying to read a series of CDs (for example 12 discs in a collection). I have 3 CD drives. I will fork a child process for each drive. The child will output a file, e.g. "disc1.wav" and then exit.

How can I best have the parent keep track of the number of discs so far read and pass the appropriate value to each child in sequence?

The scenario I fear:

Parent -> child 1, cdrom1 still reading disc1 -> child 2, cdrom2 *finished* reading disc2 -> exit0 -> child 3, cdrom3 still reading disc3
Child 2 exits as above. Next, the parent should fork another read child:
Parent -> child 1, cdrom1 still reading disc1 -> child 2 (done) -> child 3, cdrom3 still reading disc3 -> child 4, cdrom2 read disc4
The parent should pass the disc number "4" do child 4 so it knows which disc its reading. Seems tricky! Any tips or tutorial links?