Thread Net::DNS::Resolver::Base - Problem mit IO::Socket::Inet6 (24 answers)
Opened by dude at 2009-03-20 11:59

Gast dude
 2009-03-20 11:59
#119605 #119605
Hi Leute
ich benutze CPAN:Net::DNS::Resolver::Baseund das funktionierte 1a. Und urplötzlich wirft dieser einen Fehler aus:
Code: (dl )
Can't locate IO/Socket/INET6.pm in @INC (@INC contains: ./ ./module ./module/CPAN /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at module/CPAN/Net/DNS/Resolver/Base.pm line 61. 

Ich habe den Fehler zu dem BEGIN Block in Base.pm zurückverfolgt. Dort steht folgender Text:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
BEGIN {
    if (
         eval {require IO::Socket::INET6; IO::Socket::INET6->VERSION("2.00");}
         ) {
        $has_inet6=1;
    }else{
        $has_inet6=0;
    }
 }
Der Eval block gibt defintiv nichts zurück, da IO::Socket::INET6 nicht installiert und verfügbar ist. Mir geht es quasi nur darum diese Fehlermeldung zu unterdrücken, den ansonsten arbeitet das Modul fehlerfrei und gibt auch brav die zurückverfolgte DNS der IP aus.

Vielleicht interessiert euch der Kontext indem ich das Modul ausführe.
Ein CGI auf dem Webserver, der mittels CGI::Carp::set_die_handler eine Funktion ausführer (Mail und Fehlermeldung an den Browser). Das komische ist, die Meldung kommt per mail und wird im Browser angezeigt, nicht aber im Errorlog des Webservers.


Hilfe wäre top, es hagelt bei mir Emails. Ich habe schon versucht den BEGIN Block zu verändern, indem ich die IF-Else rausgelöscht habe und direkt has_inet6=0; reingeschrieben habe, aber dann funktioniert Base.pm gar nicht mehr..

Danke.

----
Modedit Gwendragon: falsches Package korrigiert
----
Last edited: 2009-03-20 17:34:23 +0100 (CET)

View full thread Net::DNS::Resolver::Base - Problem mit IO::Socket::Inet6