IPC::Open3 doesn't vivify an err filehandle #7515
Created by firstname.lastname@example.org
perl -le '
So as you can see $err actually never gets filled in.
Beyond that the logic also seems wrong for getting the err handle filled in:
$dad_err ||= $dad_rdr;
will duplicate $dad_rdr to $dad_err, which means that later the
xpipe $dad_err, $kid_err if !$dup_err && $dad_err ne $dad_rdr;
will do nothing. So stderr will not get its own pipe. And indeed stracing
Possibly this is intentional, because the docs say:
If either reader or writer is the null string, this will be replaced by
which indeed doesn't talk about $err (and it talks about empty strings
my($wtr, $rdr, $err);
which suggests $err is now something you can use instead of just a
(Mmm, and why is the code playing ugly gensym games anyways now that
On Mon Sep 27 07:05:23 2004, email@example.com wrote:
Confirmed that, seven years later, problem persists:
$ perl -le '
Thank you very much.
On Fri, Dec 2, 2011 at 7:31 PM, James E Keenan via RT <
I was going to suggest that the resolution should be a clarification of the
- It's not practical to work around valid code C<< open3($wtr, $rdr,
But the documentation is already quite clear about this:
If CHLD_ERR is false, or the same file descriptor as CHLD_OUT, then STDOUT
If this was a bug when the requester filed it, it's already been resolved