in reply to Capturing output from Child processes

Well, I'm glad we've all learned something about "-|", but to get to the original subject line: "Capturing output from Child processes", I think the crux shows up in a couple of your replies to replies...

Yea, open with the command doesn't give me any errors but I have yet to get any output from the child...

...the children are packet simulators that never shut down...

So, maybe the problem is that you are trying to read from the child processes in a line-oriented fashion -- i.e. $/ is left at its default value ("\n"), and you're doing:

while(<$pid>) { ... }
And then maybe these children are never producing anything that looks like "\n"? I don't know -- maybe if you show some more of your code, it'll help.

Or maybe if you set "$/" to an integer value, so each read would return as soon as the specified number of bytes was available. (There's a possibly relevant discussion of this method in this SoPW thread.