# If the write handle is a dup give it away entirely, close my copy
# of it.
xclose $dad_wtr if $dup_wtr;
####
$ perl -MCarp=verbose a.pl
open3: close(4) failed: Bad file descriptor at /usr/share/perl/5.8/IPC/Open3.pm line 70
IPC::Open3::xclose(4) called at /usr/share/perl/5.8/IPC/Open3.pm line 218
IPC::Open3::_open3('open3', 'main', '<&4', '>&STDOUT', '>&STDERR', '/bin/cat') called at /usr/share/perl/5.8/IPC/Open3.pm line 229
IPC::Open3::open3('<&4', '>&STDOUT', '>&STDERR', '/bin/cat') called at a.pl line 21
####
xclose $dad_wtr if $dup_wtr;
####
if ($dup_wtr) {
if (fh_is_fd($dad_wtr)) {
xclose $dad_wtr;
} else {
xfdclose xfileno($dad_wtr);
}
}