CPAN steht für Comprehensive Perl Archive Network (zu deutsch in etwa zu übersetzen mit Umfassendes Perl-Archiv Netzwerk). Es ist eine Art offizielle Sammelstelle für Perl-Module. Das CPAN-Verzeichnis enthält tausende von Modulen für alle nur denkbaren Aufgaben, egal ob für Kalenderprogrammierung, mathematische Berechnungen, Textverarbeitung, Datenverschlüsselung oder Internetzugriffe. Das Stöbern im CPAN-Verzeichnis und Besorgen eines geeigneten Moduls kann also viele Stunden und Tage Programmierarbeit sparen. Dazu kommt, dass ein bewährtes Modul meistens schon von Bugs (Fehlern) im Code weitgehend befreit ist und eine Laufstabilität hat, die selbstgeschriebener Code oft erst nach längerer Zeit erreicht.
Module aus dem CPAN-Verzeichnis müssen allerdings - im Gegensatz zu den Standardmodulen - erst installiert werden, bevor ein Script sie verwenden kann. Wenn ein Script auf einem anderen Rechner laufen soll, müssen CPAN-Module, die in dem Script verwendet werden, auch dort zuerst installiert werden. Dazu müssen Sie die gewünschten Module zunächst downloaden.
Die Module aus dem CPAN-Verzeichnis verfügen in der Regel genau wie die Standardmodule über eine integrierte Dokumentation, die mit perldoc lesbar ist.
Das CPAN-Verzeichnis ist wegen der hohen Belastung durch die zahlreichen Perl-Programmierer auf vielen Servern weltweit gespiegelt. Es ist daher ratsam, sich erst einmal über die verfügbaren Server zu informieren. Die offizielle Liste der CPAN-Server finden Sie unter folgender Adresse:
http://www.perl.com/CPAN/SITES
Die Server, die dort aufgelistet werden, sind überwiegend öffentliche FTP-Server. Die meisten Browser sind in der Lage, die Inhalte von FTP-Sites anzuzeigen. Ansonsten können Sie auch mit Hilfe eines FTP-Programms auf einen solchen Server zugreifen. Im Link-Verzeichnis des Online-Angebots von SELFHTML aktuell finden Sie eine Produktübersicht mit Links zu Anbietern von solchen Programmen:
SELFHTML-Linkverzeichnis: FTP-Programme
Bei den Spiegelungen des CPAN-Verzeichnisses handelt es sich um öffentliche FTP-Sites. Das bedeutet, dass Sie für die FTP-Verbindung zu dem Server einfach die Serveradresse (Name oder IP-Adresse), als Benutzernamen Anonymous und als Passwort Ihre E-Mail-Adresse angeben.
Einige der aufgelisteten Server sind jedoch auch HTTP-Server, die für Browser ohne eingebaute FTP-Funktion geeignet sind.
Sie können das CPAN-Verzeichnis aber auch in Form normaler Web-Seiten durchstöbern. Rufen Sie dazu die folgende Adresse auf:
Einen guten inhaltlichen Überblick über die verfügbaren Module erhalten Sie, wenn Sie mit einem FTP-Programm im CPAN-Verzeichnis ins Unterverzeichnis modules und dann weiter ins Unterverzeichnis by-category wechseln. Jede Kategorie wird durch ein Unterverzeichnis repräsentiert. Die folgende Tabelle listet die Namen der zum Zeitpunkt der Redaktion dieses Textes verfügbaren Unterverzeichnisse auf und gibt zu jedem Unterverzeichnis einen kurzen Überblick über dessen Inhalt. Dieser Überblick ist allerdings nur ein grober Anhaltspunkt, was in dem jeweiligen Unterverzeichnis zu finden ist. Wenn Sie auf der Suche nach einem Modul für eine bestimmte Aufgabe sind, sollten Sie beim Besuch des CPAN-Verzeichnisses etwas Zeit zum Stöbern und Lesen mitbringen.
Beachten Sie, dass das CPAN-Verzeichnis physikalisch nach Autoren geordnet ist. Die Sortierung nach Kategorien enthält daher nur symbolische Links auf Verzeichnisse und Dateien in anderen Verzeichnissen unterhalb des Verzeichnisses authors. Wenn Sie also ein Verzeichnis oder eine Datei auswählen, wechseln Sie automatisch in ein entfernteres Verzeichnis oder erhalten eine Datei aus einem entfernteren Verzeichnis.
Unterverzeichnis | Inhalt |
---|---|
02_Perl_Core_Modules |
Enthält Module, die zum Kern von Perl gezählt werden. Viele dieser Module gehören mittlerweile auch zu den Standardmodulen von Perl. Das Verzeichnis enthält aber noch mehr als die Standardmodule. Bei den weiteren Modulen handelt es sich um Anwärter für Standardmodule. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
03_Development_Support |
Enthält Module, die das Entwickeln von Perl-Scripts und von Modulen unterstützen. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
04_Operating_System_Interfaces |
Enthält Module für systemnahe Aufrufe und betriebssystemspezifische Funktionen. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
05_Networking_Devices_IPC |
Enthält Module für die Netzwerk-Programmierung. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
06_Data_Type_Utilities |
Enthält Module für Datentypen, Datenstrukturen und wichtige Algorithmen. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
07_Database_Interfaces |
Enthält Module für die Kommunikation mit bekannten Datenbanksystemen. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
08_User_Interfaces |
Enthält Module zum Programmieren von Benutzeroberflächen mit Perl. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
09_Language_Interfaces |
Enthält Module für die Integration anderer Programmiersprachen in Perl. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
10_File_Names_Systems_Locking |
Enthält Module für die Verwaltung von Dateisystemen, Dateinamen und Sperren benutzter Dateien. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
11_String_Lang_Text_Proc |
Enthält Module für die Zeichenkettenverarbeitung und für Textverarbeitung. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
12_Opt_Arg_Param_Proc |
Enthält Module zum Auslesen von Konfigurationsdateien. Eine interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
13_Internationalization_Locale |
Enthält Module für das Arbeiten mit internationalen Zeichensätzen. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
14_Security_and_Encryption |
Enthält Module für die Verschlüsselung von Daten und für Authentifikation. Achtung: Beachten Sie vor dem Download solcher Module auf kryptografische Einschränkungen in Ihrem Land! Der Erwerb von Quellcode mit unerlaubten Verschlüsselungsverfahren kann strafbar sein - leider. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
15_World_Wide_Web_HTML_HTTP_CGI |
Enthält Module für CGI-Scripts, HTTP-Verbindungen und HTML-Erzeugung. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
16_Server_and_Daemon_Utilities |
Enthält Module zum Programmieren eigener Server. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
17_Archiving_and_Compression |
Enthält Module für die Archivierung und Komprimierung/Dekomprimierung von Dateien in und aus bekannten Packformaten. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
18_Images_Pixmaps_Bitmaps |
Enthält Module für Bild- und Videoformate. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
19_Mail_and_Usenet_News |
Enthält Module für E-Mails und den Zugriff auf News-Server. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
20_Control_Flow_Utilities |
Enthält Module zur Kontrolle des laufenden Perl-Scripts. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
21_File_Handle_Input_Output |
Enthält Module für Ein-/Ausgabefunktionen mit Handles. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
22_Microsoft_Windows_Modules |
Enthält Module für MS-Windows-Systeme ab Windows 95. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
23_Miscellaneous_Modules |
Enthält Module für verschiedene Aufgaben, die anderweitig nicht einzuordnen sind. Eine Fundgrube also! Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
24_Commercial_Software_Interfaces |
Enthält Module für die Kommunikation zwischen Perl-Programmen und kommerziellen Software-Produkten. Einige interessante Module/Modulgruppen dieses Unterverzeichnisses sind: |
99_Not_In_Modulelist |
Enthält Module, die nicht in der offiziellen Modul-Liste des CPAN-Verzeichnisses enthalten sind. |
Die Verzeichnisse mit Modulen enthalten jeweils zu jedem Modul eine Datei mit der Endung .readme und eine Datei mit der Endung .tar.gz. Die readme-Datei ist eine Textdatei, der Sie vorab Details zum jeweiligen Modul entnehmen können. Die tar.gz-Datei ist eine nach dem GNU-Zip-Verfahren komprimierte tar-Datei, also eine Archivdatei. GZip und tar sind typische Werkzeuge aus der Unix-Welt. Um die Dateien unter anderen Betriebssystemen, etwa unter Windows zu entpacken, benötigen Sie ein Entpack-Programm für gzip-Dateien. Im Link-Verzeichnis des Online-Angebots von SELFHTML aktuell finden Sie eine Produktübersicht mit Links zu Anbietern von solchen Programmen:
SELFHTML-Linkverzeichnis: Pack- und Entpack-Programme
Auf Unix-Systemen können Sie eine gezippte Archivdatei (im folgenden am Beispiel der Datei Algorithm-SISort-0.10.tar.gz) mit folgendem Befehl entpacken:
tar -zxf Algorithm-SISort-0.10.tar.gz
Falls dies nicht funktioniert, sollte der folgende zusammengesetzte Befehl funktionieren:
gzip -cd Algorithm-SISort-0.10.tar.gz | tar -xf -
Anschließend befinden sich die entpackten Dateien in einem Unterverzeichnis mit dem gleichen Namen wie das Modul, im Beispiel also etwa einem Verzeichnis namens Algorithm-SISort-0.10.
Wenn Sie das Modul nicht auf dem eigenen Rechner installieren wollen, sondern auf einem Rechner im Internet, wo Sie Web-Speicherplatz gemietet haben, benötigen Sie einen Telnet- oder SSH-Zugang zu dem Rechner, um das Modul dort installieren zu können. Ferner benötigen Sie die Rechte, um in die Modulverzeichnisse von Perl Dateien kopieren zu können. Fragen Sie dazu gegebenenfalls Ihren Provider! Wenn es sich bei dem Server-Rechner um einen Rechner mit einem Unix-Betriebssystem handelt, können Sie die tar.gz-Datei des Moduls zunächst auf Ihren Rechner downloaden, dann auf Ihren Server-Rechner uploaden und die Datei dort am Shell-Prompt, den Sie bei Zugang über Telnet oder SSH erhalten, mit den oben genannten Befehlen entpacken.
Nach dem Entpacken der tar.gz-Datei des Moduls muss das Modul installiert werden. Wechseln Sie dazu in das Verzeichnis der entpackten Dateien. Meistens finden Sie dort eine Datei namens README oder INSTALL, in der unter anderem Informationen zum Installieren des Moduls stehen.
Unter Unix müssen Sie nun am Shell-Prompt folgende Befehle eingeben:
perl Makefile.PL
Mit diesem Befehl wird eine Datei mit Installationsinformationen erzeugt. Gegebenenfalls müssen Sie beim Aufruf von perl den Pfad zur ausführbaren Datei des Perl-Interpreters angeben.
make
Mit diesem Befehl wird die Installation vorbereitet.
make test
Mit diesem Befehl wird die Installationsvorbereitung getestet.
make install
Mit diesem Befehl wird die Installation durchgeführt.
Führen Sie unbedingt immer alle diese vier Befehle der Reihe nach aus, wenn Sie ein Perl-Modul installieren! Das Modul ist dann in einem Modulverzeichnis installiert. Weitere Informationen, wie Sie das Modul benutzen, finden Sie in der hoffentlich vorhandenen Datei README oder INSTALL.
Unter anderen Systemen wie MS Windows, wo Sie normalerweise Zugang zu allen Verzeichnissen auf dem Rechner haben, kopieren Sie einfach den Inhalt des Unterverzeichnisses lib, das nach dem Entpacken existieren sollte, in das Verzeichnis lib unterhalb des Installationsverzeichnisses von Perl, sofern es sich um ein reines Perl-Modul handelt. Wenn das Modul mit C-Erweiterungen arbeitet, benötigen Sie einen C-Compiler, oder Sie benutzen das in der ActivePerl-Distribution mitgelieferte Tool ppm, um eine bereits compilierte Version des Moduls zu installieren.
Falls Sie aufgrund fehlender Rechte auf einem Server-Rechner nicht die Möglichkeit haben, Module aus dem CPAN-Verzeichnis in die Modulverzeichnisse von Perl zu installieren, können Sie es auch in ein Verzeichnis Ihrer Wahl installieren. Also in ein Verzeichnis, auf das Sie selber Zugriff haben. Ohne einen Shell-Prompt, wie er bei Telnet oder SSH zur Verfügung steht, kommen Sie jedoch nicht aus.
Legen Sie dazu zunächst das Verzeichnis mit dem gewünschten Namen an der gewünschten Stelle in Ihrem Verzeichnisbaum an. Stellen Sie danach sicher, dass Sie sich im Verzeichnis des entpackten Perl-Moduls befinden. Geben Sie dann der Reihe nach folgende Befehle ein:
perl Makefile.PL LIB=[Pfad zum Verzeichnis]
make
make test
make install
Bei [Pfad zum Verzeichnis]
müssen Sie das zuvor angelegte Verzeichnis korrekt adressieren. Angenommen, Sie haben die Moduldateien aus Sicht Ihres Homepage-Startverzeichnisses in tmp/Algorithm-SISort-0.10 entpackt, und das Modul soll in cgi-bin/perlmodule/Algorithm-SISort-0.10 installiert werden. Dann müssen Sie, wenn Sie sich im Verzeichnis tmp/Algorithm-SISort-0.10 befinden, eingeben:
perl Makefile.PL LIB=../../cgi-bin/perlmodule/Algorithm-SISort-0.10
Modul CGI: Funktionen für die CGI-Programmierung | |
Standardmodule von Perl | |
SELFHTML/Navigationshilfen Perl Perl-Module |
© 2005 Impressum