Klaus Mock: Includes in Perl

Beitrag lesen

Hallo,

Um sowas handelt es sich auch. Ich wollte sowohl mal etwas Code zusammenfassen als auch mal Configurationskonstanten auslagern (z.B. Dateinamen, Hintergrundfarben usw.) Wie funktioniert denn diese andere Handhabe ??

Dafür gibts drei Anweisungen:
use, require und do.

Daß man Perl i.A. nicht compiliert ist mir klar. Aber durch die Beschreibung der Handhabung des "require" Befehls (6 oder 7 Seiten) bin ich nicht ganz durchgestiegen. Da stand z.B. daß man die Teile nur in bestimmten Verzeichnissen unterbringen kann und da war von einer richtigen Installation der Module die Rede.

Module kannst Du auch wie dynamische Bibliotheken betrachten. Und es hat sich in der Praxis als brauchbar erwiesen, daß eben diese an einem vordefinierten Ort bzw. Orten abgelegt sind. Die Pfade, die für use und require benutzt werden, sind übrigens über das Array @INC vom Script aus erreichbar.

Übrigens ist es auch in C so, daß nur bestimmet Verzeichnisse nahc Include-Dateien durchsucht werden.

Wenn Du Deine Module in einem Ordner ablegene willst, welcher noch nicht in @INC aufschein, dann kannst Du dies mit
use lib '/pfad/zu/deinen/modulen';
dem Script mitteilen.

Wirkte jedenfalls auf den ersten Blick sehr aufwendig.

Aber nur auf dem ersten Blick;-)

Oder habe ich da 2 Sachen vermischt ??? Sind Module und die Sachen, die man mit "require" einbindet 2 verschiedene Paar Schuhe ??

Nach Studium der Dokumentation von use und require wirst Du sehen, daß da eigentlich nicht viel Unterschiede vorhanden sind.
Wichtig könnte eventuell sein, daß mit use die Module bereits bei der 'Compilierung' des Scripts einbindet[1], während require die Module erst zur Laufzeit einbindet.

'do' wäre dann noch die dritte Möglichkeit, Code aus einer anderen Datei einzubinden.

Alle Funktionen erfordern allerdings (natürlich) gültigen Perl-Code in diesen Dateien. Einfache 'name=wert' Paarungen mußt Du also vergessen.

Grüße
  Klaus

[1] genauer gesagt: im BEGIN-Block