Hallo Knut,
Ich habe das Problem, dass ich bei einem
größeren Perl Projekt immer die obige
Fehlermeldung erhalte. Warscheinliche Ursache
ist die, dass das zugehörige Modul in einigen
Situationen (nicht immer) von mehreren anderen
Modulen zugeladen wird. Ab dem zweiten mkommt
dann diese Meldung.
Das liegt wahrscheinlich daran, dass Perl zu der
Phase, zu der das Modul geladen wird, die
INIT-Bloecke bereits abgehandelt wurden. Perl
compiliert Phasenweise: zuerst wird alles geladen,
was notwendig ist, um den main-Block zu
uebersetzen. Dann werden, bei Bedarf, weitere
Module hinzugeladen. Zu dem Zeitpunkt ist die
INIT-Phase aber bereits abgeschlossen. Deshalb die
Warnung.
Kann ich die Ausführung des INI-Blocks
irgendwie unterdrücken, wenn er schon geladen
ist
Wenn das Modul bereits geladen wurde, wird es kein
weiteres mal geladen. Der INIT-Block wird auch
kein weiteres mal ausgefuehrt.
oder kann ich überprüfen, ob ein Modul
schon geladen ist und in diesem Fall auf ein
erneutes Laden verzichten?
Das macht Perl automatisch :)
Oder hat jemand noch eine andere Idee um den
Fehler zu umgehen?
Wandle den INIT-Block in einen BEGIN-Block um.
INIT ist in den meisten Faellen nicht noetig und
kann Problemlos in einen BEGIN-Block verwandelt
werden.
Gruesse,
CK
Die Wirklichkeit hat weder ein Inneres, noch ein Äußeres, noch ein Zentrum.