Knut Schwarzer: To late to run INIT Block

Hallo,
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. Kann ich die Ausführung des INI-Blocks irgendwie unterdrücken, wenn er schon geladen ist oder kann ich überprüfen, ob ein Modul schon geladen ist und in diesem Fall auf ein erneutes Laden verzichten? Oder hat jemand noch eine andere Idee um den Fehler zu umgehen?
Vielen Dank im Voraus
Knut

  1. 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.
    1. Vielen Dank für den Tip. Klingt irgendwie logisch.
      Ich werds mal testen.
      Viele Grüße
      Knut