> print STDERR "blah blah blah" is going to the browser but I am not
> really worried about it too much unless it is something I should worry
> about - anyone care to comment on that ?
Printing error messages to the public is a potential security risk, so
you have to decide how paranoid you want to be. You could change this
behavior by modifying the tied STDERR in Parse::ePerl or maybe in
Apache::ePerl where it prints the message to the browser.
> Ofcourse I still dont understand why die was being trapped out there.
It is being trapped to allow for error reporting and to avoid leaving
the program in an unknown state when a problem occurs. If you want it
to still work for this but not pick up your eval() calls, you can
replace the __DIE__ handler there with something fancier like this:
local $SIG{__DIE__} = sub {
my $in_eval = 0;
for( my $stack = 1; my $sub = (CORE::caller($stack))[3];
$stack++ ) {
$in_eval = 1 if $sub =~ /^\(eval\)/;
}
$error .= $_[0] unless $in_eval;
};
This is a slight variation of some Michael Schwern code that Stas posted
a little while ago.
- Perrin