in reply to Re^2: Capturing STDERR (this is not a FAQ)
in thread Capturing STDERR (this is not a FAQ)

This sounds promising.

From perl's core documentation: open
Here is a script that saves, redirects, and restores STDOUT and STDERR + using various methods: #!/usr/bin/perl open(my $oldout, ">&STDOUT") or die "Can't dup STDOUT: $!"; open(OLDERR, ">&", \*STDERR) or die "Can't dup STDERR: $!"; open(STDOUT, '>', "foo.out") or die "Can't redirect STDOUT: $!"; open(STDERR, ">&STDOUT") or die "Can't dup STDOUT: $!"; select STDERR; $| = 1; # make unbuffered select STDOUT; $| = 1; # make unbuffered print STDOUT "stdout 1\n"; # this works for print STDERR "stderr 1\n"; # subprocesses too open(STDOUT, ">&", $oldout) or die "Can't dup \$oldout: $!"; open(STDERR, ">&OLDERR") or die "Can't dup OLDERR: $!"; print STDOUT "stdout 2\n"; print STDERR "stderr 2\n";
Bill

Replies are listed 'Best First'.
Re^4: Capturing STDERR (this is not a FAQ)
by ikegami (Patriarch) on Feb 10, 2015 at 14:58 UTC
    The OP is already doing that, and it won't work for tied handles for the reasons already stated, so it doesn't help the OP.