If you dont want to introduce a dependency on IO::Capture::Stderr, and you only want to capture the STDERR from the die() calls, you could try this
my @dieings;
sub my_die() {
# localise capture to just my_die() calls...
local $SIG{__DIE__} = sub {
push(@dieings, @_);
};
die(@_);
}
#... time passes
my_die("now we need to capture");
#... time passes
print "now we need to report " . Dumper(\@dieings);
It may be possible to replace die() with this at compile time, I've never tried the *CORE::GLOBAL trick with die(), only open(). I know there are some perl functions where not even compile-time replacement works, die() might be one of those.
...reality must take precedence over public relations, for nature cannot be fooled. - R P Feynmann
| [reply] [Watch: Dir/Any] [d/l] |