in reply to DIE or Fatals cause Redirect?

Hi, this is the code I use in my scripts. I use DieNice instead of die. You can save recoding all your dies by setting a $SIG{__DIE__} = \&DieNice as noted above. In my experience the die sig handler is not reliable on Win32.

sub DieNice { my $message = shift; my ($package, $file, $line) = caller(); my $user_message = "Sorry, the system is currently unable to proce +ss your request<br>\n"; $user_message .= "due to routine maintenance. Please try again lat +er. Our Apologies\n"; $message = Unindent <<" MESSAGE"; A fatal die was trapped by the $scriptname die nice routine, detai +ls: Time: $datetime List name: $list_name Script name: $scriptname Package: $package File: $file Line Number: $line Error Message: $message MESSAGE &TellUser($user_message); # the bullshit message! &WarnAdmin($message); # the real facts! exit; } sub WarnAdmin { my $message = shift; my ($old_name, $old_email) = ($name, $email); $name = "Administrator"; $email = $our_email; &EmailUser ($message); ($name, $email) = ($old_name, $old_email); return; }

The &TellUser sub displays a Sorry page with the passed message. The old routine maintenance story!. The unindent sub just strips leading whitespace and lets the herepages sit nicely inline in the code.

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print