http://qs321.pair.com?node_id=559062


in reply to Re^2: Saving STDERR and displaying it later
in thread Saving STDERR and displaying it later

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