Uh, sounds like work. :-) I would use the first example I gave you, which uses IO::Select to read the filehandles. Open each of your processes with IPC and add the \*READ filehandle to select, and store the $pid. I would put them in a hash for easy reference. When you read the output, run it through a regex, and when you find the word,
kill all $pids. You probably would find an example of doing what you want with the Parallel::ForkManager module, which may be better suited for this kind of operation.