Hello dkhosla1,
See also the entry for %SIG in perlvar#General-Variables.
I really need the SIG_DIE functionality for the rest of the code, just not have it get int he way in the try/catch section :-).
You can disable the signal handler for just the section(s) of code containing try/catch:
use strict; use warnings; use Try::Tiny; $SIG{__DIE__} = sub { chomp(my $item = shift); print STDERR "DIE ERROR: $item\n"; exit 2; }; # ... code here ... my $last_sig_die = $SIG{__DIE__}; # Save current setting $SIG{__DIE__} = 'DEFAULT'; try { die 'Dying'; } catch { print STDERR $_; # Note: $_, not $@ }; $SIG{__DIE__} = $last_sig_die; # Restore setting die 'Really dying';
Output:
17:42 >perl 1871_SoPW.pl Dying at 1871_SoPW.pl line 19. DIE ERROR: Really dying at 1871_SoPW.pl line 28. 17:42 >
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re: try catch getting ignored by SIG DIE subroutine
by Athanasius
in thread try catch getting ignored by SIG DIE subroutine
by dkhosla1
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |