in reply to Re: die function and notifications
in thread die function and notifications

This is what I've ended up doing. I test for the return code of a call to an external program and if that returns a non-zero, I die and pass the return code to the END from die. Then, within the END, I test $? to see if it is greater than zero, if it is, then I copy the log with an error message and send an alert. Otherwise I copy the log with a different name and exit completely with a 0. This may be kludgy but it seems to work (for the moment). using eval() and $@ does not work so well because I can't get the error messages into $@ (at least not yet).

&My::custom_routine("TESTTRANSFER"); my $rc=$?>>8; die ($rc) if ($rc > 0); END { if ($? > 0) { print STDERR "TEST.PL Died with error.\n"; copy("TEST.LOG", "TEST.ERROR"); &My::pager("TEST ERROR MESSAGE."); }else{ print STDERR "TEST.PL completed successfully.\n"; copy("TEST.LOG", "TEST.GOOD"); exit 0; } }

Thanks for the help.

"Ex libris un peut de tout"