LPI-Prüfungsvorbereitung LPIC-2

> # Module in Perl einbinden

> Perl ist eine Programmiersprache, die sich ähnlich wie C oder C++ jederzeit durch Funktionsbibliotheken erweitern lässt. Die Funktionsbibliotheken von Perl werden Module genannt und enden zumeist auf `.pm` (Perl Module).

> Um ein Modul in Perl einzubinden, gibt es mehrere Möglichkeiten, die wichtigen Befehle in Perl hierzu sind:

> import Modul [Liste]
>   Importiert Routinen und Variablen aus der angegebenen Moduldatei in das aktuelle Projekt. Die gewünschten Routinen und Variablen können in Liste angegeben werden. Wird Liste weggelassen, so werden alle Routinen und Variablen importiert. import ist kein fester Perl-Befehl, sondern eine Klassenmethode, die von `UNIVERSAL` geerbt werden kann.
> unimport Modul [Liste]
>   Hebt die Wirkung eines vorher aufgerufenen import (oder use Befehls wieder auf. Wie import ist auch unimport kein fest eingebauter Befehl, sondern eine Klassenmethode.
> require Moduldatei
>   Bindet die angegebene Datei einmal in den Quellcode ein. Der Befehl führt zu einem fatalen Fehler, wenn die Datei nicht gefunden wird, genauer gesagt, wenn der Ausdruck Moduldatei nicht zu einem wahr-Wert evaluiert. Wurde dem Dateinamen kein Suffix angegeben, so wird `.pm` angenommen.
> use Modul [Version] [Liste]
>   Während des Kompilierens wird das angegebene Modul mittels require geladen. Optional wird auch noch die notwendige Version des Perl-Interpreters überprüft. Wie bei import können auch nur bestimmte Methoden und Variablen eingebunden werden, die in der Liste angegeben wurden.

> ### CPAN

> Es existiert ein weltweites Netz von Perl-Programmierern, die ihre Module allen anderen Perl-Nutzern zur Verfügung stellen. Dieses Netz nennt sich CPAN (Comprehensive Perl Archive Network) und bietet verschiedenste Möglichkeiten, Module zu suchen und zu finden. Dazu werden eine ganze Reihe von Internet-Servern aufrecht erhalten, die permanent den Master-Server spiegeln, so dass alle Module, auch die neuesten, spätestens eine Stunde nachdem sie auf dem Master-Server angekommen sind, auch auf den Mirrors zur Verfügung stehen.

> Damit alle Perl-User auf dieses Netzwerk zugreifen können, gibt es ein Perl-Modul, das auch CPAN heisst und zwei verschiedene Möglichkeiten bietet, benötigte Module aus dem Netz zu laden und auf dem lokalen Rechner zu installieren. Die erste Möglichkeit liegt darin, das Modul über use CPAN in den entsprechenden Perl Quelltext einzubinden, die andere Möglichkeit bietet eine interaktive Shell, die es einem User erlaubt, die gewünschten Module zu laden. Diese zweite Möglichkeit soll hier kurz dargestellt werden:

> Durch die Eingabe des Befehls

>         perl -MCPAN -e shell

> auf der Kommandozeile (Shell) wird der interaktive Modus gestartet. Man erhält dann einen Prompt, der weitere Eingaben erwartet. Durch die Eingabe von h oder ? wird eine Hilfeseite dargestellt, die die möglichen Befehle erklärt.

> Die wichtigsten Aktionen, sollen hier kurz beschrieben werden:

> Suche nach Autoren, Paketen (Bundles), Distributionsdateien oder Modulen
>   Für jede dieser vier Suchen gibt es einen korrespondierenden Ein-Buchstaben-Befehl (a, b, d, m) oder der Befehl i wird verwendet, der alle vier Kategorien durchsucht. Als Argumente erwarten alle fünf Befehle entweder eine Zeichenkette, die exakt der Identifikationszeichenkette eines Objektes entspricht, oder einen regulären Ausdruck. Damit der reguläre Ausdruck als solcher erkannt wird, muss er in Slashes (/Ausdruck/) gesetzt werden.
> make, test, install oder clean Module oder Distributionen
>   Mit Hilfe dieser vier Kommandos werden die angegebenen Module erstellt, überprüft, installiert oder deinstalliert. Mit Hilfe eines vorangestellten `force` kann die Abarbeitung erzwungen werden, auch wenn Perl der Meinung ist, dass das keine gute Idee ist.
> get, readme oder look Modul
>   get läd ein Modul, ohne weitere Aktion (kein Installieren, kein Aufruf von make). readme zeigt die README-Datei des gewählten Moduls (oder der Distribution) und look läd und entpackt die Distributionsdatei, wechselt in das entsprechende Verzeichnis und öffnet dort einen Subshell-Prozeß.
> ls autor
>   ls listet alle Distributionsdateien eines Autors auf. Nur die Dateien, die Module enthalten werden aufgelistet.