in reply to Handling STDERR and STDIN in Perl

I think you want IPC::Open3. From the synopsis:
my($wtr, $rdr, $err); $pid = open3($wtr, $rdr, $err, 'some cmd and args', 'optarg', ...);
update: whoops, I typed IO::Open3 - I meant IPC::Open3!