sub fatal_error { my $err = $_[0]; my @caller = (); my $i=-1; while ( caller(++$i) ) { (caller($i))[1] =~ /5\.8\.0/ and last; # don't log apache mod in trace push @caller, sprintf("-> %s at line %s\n", (caller($i))[1,2]); } open(LOG,">>/path/to/err_log") or die $!; print LOG `date`,"$err\n",@caller,"\n"; close(LOG); # display fatal error page, since this is in a web environment }