Hallo ihr.
Ich versuche seit einiger Zeit (verzweifelt) in ein objektorientiertes Perl-Programm dynamisch Funktionen nachzuladen.
Leider habe ich zwei Probleme:
a) Das Einbinden von require funktioniert nur bedingt. Wenn ich Bibliotheken via "require" einladen lasse, befinden diese sich nur im Namensraum der jeweiligen einbindenen Klasse.
Wenn also die Klasse "Haupt" das require verwendet, kann ich die Funktionen nicht in der Klasse "Neben" aufrufen. Ein Aufruf mittels "&Haupt::funktion()" klappt zwar, aber nur bedingt, da ich defined(Haupt::funktion()) darauf nicht anwenden kann (ich muss wissen ob die Funktion vorhanden ist).
b) Mit use schaffe ich es nicht, dynamische Pfade anzugeben.
Klappt nicht.Code:$pfad = "libs/meine_lib.pm"; use $pfad;
Gibt es eine andere Möglichkeit den Vorteil von use (precompiling) und require (dynamik) miteinander zu kombinieren, oder ist das was ich versuche grundsätzlich schlecht?
Ich hatte auch noch eine andere Methode vorgesehen:
c) Ich lade meine Bibliotheken nicht dynamisch, sondern im Hauptprogramm via use. Dann habe ich aber das Problem, dass mir auch dieser Namensraum unbekannt ist. Ein Aufruf aus der Klasse "Neben" mit "&Main::funktion()" schielt ins Leere.
Irgendwelche Ideen?
Lesezeichen