Thread Anfänger-Frage use / require / Pfad (8 answers)
Opened by Frank183 at 2010-07-23 23:59

topeg
 2010-07-24 07:36
#140042 #140042
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Was das importieren von Modulen betrifft. Es unterteilt sich in vier Schritte bei der Verwenung von "use" und drei wenn man "require" verwendet.

1. Aufspüren des Programmcodes.
2. Laden des Codes.
3. Interpretieren des Codes (ausführen von "BEGIN()" etc.)
4. ausführen von "_PACKAGE_->import()" (bei use)

Um den Programmcode auf zu spüren werden alle "::" durch "/" ersetzt und hinten ein ".pm" angehängt. Aus "das::ist::ein::test" wird "das/ist/ein/test.pm". Das wird in allen Verzeichnissen gesucht, die in "@INC" zu finden sind. Der erste Treffer wird verwendet.
Danach wird der Code geladen und ausgeführt dabei verhält sich der Interpreter wie beim starten eines Scriptes oder "eval". Aus dem Grund muß am ende eines Modules immer "1;" stehen was als "return 1;" (um genu zu sein "$_=1; return $_;") interpretiert wird. Ohne das am ende ginge perl davon aus dass das Modul nicht korrekt geladen werden konnte.
Wurde "use" verwendet so wird nun unter dem Paketnamen die Funktion "import" ausgeführt. Sie wird z.B. vom Modul "Exporter" verwendet um Funktionen in den aufrufenden Namensraum zu exportieren. (damit kommen wir schon in den Bereich der Objektorientierten Programmierung bzw. der Vererbung)

siehe dazu:
Kleine Einführung in Deutsch:
http://de.selfhtml.org/perl/module/intro.htm

Ausführlicher:
http://docstore.mik.ua/orelly/perl/prog/ch05_02.ht...
http://affy.blogspot.com/p5be/ch15.htm
http://perldoc.perl.org/perlmod.html

Objektorientierung:
http://perldoc.perl.org/perltoot.html

"perdoc" hast du auch auf deinem System. Mit "perldoc <modulname/tutorialname>" oder "perldoc -f <Funktion>" kannst du dir zu allem rund um perl die Docs ansehen siehe dazu auch "perldoc perldoc"

View full thread Anfänger-Frage use / require / Pfad