Thread Net::DNS::Resolver::Base - Problem mit IO::Socket::Inet6
(24 answers)
Opened by dude at 2009-03-20 11:59
Hilft leider auch nichts, es tritt immer noch der Fehler auf.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 use CGI::Carp qw(set_die_handler); BEGIN { sub handle_errors { return if $^S; my $msg = shift; print CGI::header(); print 'Software error:<br/>'; print $msg; # send mail use Mail::Sendmail; # ........... } } set_die_handler(\&handle_errors); } Was ich auch merkwürdig finde, dass $^S nicht einmal in CGI::Carp auftaucht, nichtmal bei fatalsToBrowser. Allerdings erkenne ich da eine Textfunktion auf eval (bei CGI::Carp::die - zeile 425 - 458): Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 if ( ineval() ) { if (!ref($arg)) { $arg = join("",($arg,@rest)) || "Died"; my($file,$line,$id) = id(1); $arg .= " at $file line $line.\n" unless $arg=~/\n$/; realdie($arg); } else { realdie($arg,@rest); } } ineval sieht so aus: Code (perl): (dl
)
1 2 3 sub ineval { (exists $ENV{MOD_PERL} ? 0 : $^S) || _longmess() =~ /eval [\{\']/m } Die Lösung für das Problem ist dann dieses: Code (perl): (dl
)
$main::SIG{__DIE__} = $handler; wird zu in CGI::Carp::set_die_handler Kann man das so lassen oder ist das gegen irgendwelche Richtlinien? |