in reply to capturing output from another perl program

That's one of my favorite ways to do it. You may want to adopt perl 5.6+ notation for piped open, use a lexical file handle, and keep the child pid,

{ my $cpid = open my $fd, '-|', 'a' or die $!; print while <$fd>; }
The three-arg form of open is preferred because it separates the open mode from the file name, and it can take modifiers like ':raw' to activate IO layers, remove the need for binmode, etc.

Your app could have done this with backticks, but not so well.

After Compline,
Zaxo