# Tag B

#
Überblick über die Perl-Module

Es gibt praktisch Hunderte von Modulen, die für die Arbeit mit Perl entwickelt wurden. Viele davon sind Teil der Standard-Perl-Bibliothek und werden mit Perl selbst ausgeliefert. Andere Module sind mit verschiedenen Perl-Ports zusammengefaßt, um Perl-Programmierer, die Perl auf einer bestimmten Plattform einsetzen, die speziellen Features dieser Plattformen verfügbar zu machen. Und dann gibt es noch das CPAN, das Comprehensive Perl Archive Network, das als Ablage für benutzerdefinierte Module dient, die auf diesem Wege einer größeren Entwicklergemeinde zur Verfügung gestellt werden sollen. Dem CPAN werden ständig neue Module hinzugefügt, so dass jede Referenz ausgewählter Perl-Module bereits zum Zeitpunkt ihrer Drucklegung veraltet ist. Wenn Sie sich einen aktuellen Überblick über den Inhalt von CPAN verschaffen wollen, schauen Sie nach unter `http://www.perl.com/CPAN/CPAN.html` und seiner Begleitliste `http://www.perl.com/CPAN/modules/00modlist.long.html`.

Dieser Anhang enthält deshalb nur einige der bekanntesten und nützlichsten Perl- Module. Aus praktischen Erwägungen sind die Module dieses Anhangs genauso wie im CPAN kategorisiert. Wenn ein bestimmtes Modul nicht als Teil der Standardbibliothek gekennzeichnet ist, steht es im CPAN und muss heruntergeladen und installiert werden, bevor es genutzt werden kann. Nachdem ein Modul auf Ihrem System installiert wurde, können Sie mit `perldoc MODULE` oder `man MODULE` die Dokumentation zu diesem Modul lesen.

Bitte bedenken Sie, dass dieser Anhang keinesfalls als vollständig zu betrachten ist. Ich habe bei der Zusammenstellung nur die Module berücksichtigt, die nützlich sind, und häufig verwendet werden oder die meines Erachtens anderweitig interessant sind. Es gibt jedoch noch jede Menge weiterer Module zu Ihrer Auswahl. In der perlmod- Manpage finden Sie eine komplette Liste der Module aus der Standard-Perl- Bibliothek. Die aktuelle Liste der CPAN-Module finden Sie unter den oben genannten URLs.

Beachten Sie außerdem, dass nicht alle Module auf allen Plattformen verfügbar sind. Sie können der Dokumentation, die zu Ihrem Modul gehört, entnehmen, ob es sich auf Ihrer Plattform ausführen läßt.

## Pragmas

Pragmas sind Module, die Anweisungen enthalten, mit denen das Verhalten von Perl zur Kompilier- und zur Laufzeit gesteuert werden kann. Sie werden wie alle Module mit Hilfe der Funktion `use` importiert. Diese Pragmas sind Teil der Standardbibliothek von Perl. Zu allen Pragmas gibt es ausführliche Dokumentationen in den Manpages (oder dem perldoc-System).

### `constant`

Mit dem `constant`-Pragma können Sie zur Kompilierzeit konstante Variablen erzeugen.

### `diagnostics`

Das `diagnostics`-Pragma erzeugt weitere Auskünfte in den Warnungen von Perl. Es entspricht dem Perl-Schalter `-w`, hat aber den Vorteil, das man es bei Bedarf für verschiedene Teile des Skriptes ein- und ausschalten kann. Die Manpage perldiag enthält ausführlichere Informationen zu den Warnungen, die vom `diagnostics`- Pragma ausgegeben werden.

### `integer`

Das `integer`-Pragma teilt Perl mit, nur mit Integerarithmetik zu rechnen, was schneller ist als die Alternative, Fließkommazahl-Arithmetik.

### `lib`

Das `lib`-Pragma bietet robustere Methoden zur Aufnahme weiterer Verzeichnisse in `@INC` (das Array, das die Liste der Verzeichnisse enthält, die nach Bibliotheken und Modulen durchsucht werden).

### `overload`

Das `overload`-Pragma ermöglicht es Ihnen, Perl mitzuteilen, wie Operatoren für Ihre Objekte arbeiten sollen.

### `sigtrap`

Mit dem `sigtrap`-Pragma können Sie das Drücken der Tastenkombination `[Strg]`-`[C]` während der Ausführung eines Perl-Programms abfangen und behandeln.

### `strict`

Das `strict`-Pragma erlaubt es Ihnen, symbolische Referenzen, globale Variablen und reine Wörter (ohne Anführungsstriche und ohne Bedeutung) zu verbieten.

### `subs`

Mit dem Pragma `subs` können Sie Subroutinennamen im voraus deklarieren

### `vars`

Mit dem Pragma `vars` können Sie globale Variablen im voraus deklarieren, so dass sie unter dem `strict`-Pragma akzeptiert werden.

## Elementare Perl-Module

Diese Module, die zum größten Teil in der Standardbibliothek von Perl zu finden sind, stellen die grundlegende Funktionalität zur Verfügung, um Perl zu erweitern oder das Verhalten von Perl zu steuern.

### `Autoloader`

`Autoloader` ist ein Modul für Modulentwickler. Sie können damit Module nach Bedarf laden und nicht erst, wenn sie ausgeführt werden. `Autoloader` ist Teil der Standardbibliothek.

### `B`

`B` ist eine Sammlung von Modulen, mit denen Sie auf den zugrundeliegenden Perl- Compiler zugreifen können. Diese Module ermöglichen die Erzeugung neuer Compiler-Schnittstellen, sogenannter Backends, die Ihren Perl-Code in C-Code übersetzen, in plattformunabhängigen Byte-Code kompilieren oder in eine ausführbare Datei kompilieren können.

### `Carp`

Das `Carp`-Modul ist vornehmlich für Modul-Entwickler interessant. Es bietet zusätzliche Funktionen zur Fehlerbehandlung, ähnlich `warn` oder `die`, aber mit dem Unterschied, dass sie berichten, wo der Aufruf der Subroutine, von der sie aufgerufen wurden, erfolgte und nicht, wo sie sich innerhalb der Subroutine selbst befinden. Normalerweise geben `warn` und `die` die Zeilennummer an, von der sie aufgerufen wurden. Wenn ein Skript ein Modul importiert und dieses Modul dann so verwendet, dass es ein `warn` oder `die` auslöst, liegt der Fehler irgendwo im Modul und nicht im Skript. Die ausgegebenen Zeilennummern von `warn` und `die` sind in so einem Fall beim Debuggen keine große Hilfe. `Carp`-Ersatzroutinen für `warn` und `die` liefern dagegen die Stelle in dem umgebenden Skript, wo der Fehler oder die Warnung auftrat.

### `Config`

Das `Config`-Modul erlaubt es Ihnen, auf einen Hash namens `%Config` zuzugreifen, der die Einstellungen für die Perl-Installation enthält. Hier sind Informationen wie das Installationsverzeichnis, der Name Ihres Betriebssystems und die Unterstützung für bestimmte Funktionen gespeichert. Dieses Modul ist Teil der Standardbibliothek.

### `English`

Mit dem `English`-Modul können Sie alternative Namen für die Perl-Variablen mit den kryptischen Namen, wie `$_`, `$!`, `$|` und so weiter, verwenden. Das Modul `English` ist Teil der Standardbibliothek.

### `Exporter`

`Exporter` ermöglicht es Ihnen, Variablen von einem Paket zum anderen zu exportieren. Es ist Teil der Standardbibliothek.

### `Opcode`

`Opcode` ist ein Modul für High-Level-Benutzer, die damit Perls interne Opcodes manipulieren können. Es ist Teil der Standardbibliothek.

### `PodParser`

Hinter `PodParser` verbirgt sich ein Bündel an Modulen, die es Ihnen erlauben, Dokumentationen, die im POD-Format (Plain Old Documentation) geschrieben sind, zu manipulieren. So können Sie zum Beispiel mit `Pod::Text` (eines der Module im Bündel) die POD-Dokumenation in `Nur-Text` umformatieren.

### `Symbol`

`Symbol` dient dazu, Perl-Symbole und ihre Namen zu handhaben. Das Modul `Symbol` ist Teil der Standardbibliothek.

### Tie-Module

Die verschiedenen `Tie`-Module (`Tie::Hash`, `Tie::Scalar`, `Tie::StdHash`, `Tie::StdScalar` und `Tie::StubstrHash`) bieten Basisklassen für gebundene Daten. Sie sind alle Teil der Standardbibliothek.

## Module zur Entwicklungsunterstützung

Diese Module sollen Ihnen helfen, bessere Skripts zu schreiben. Sie umfassen ein Modul zum Testen der Leistungsfähigkeit Ihrer Programme (Benchmarking) sowie weitere Tools zur Analyse Ihrer Programme.

### `Benchmark`

Das `Benchmark`-Modul dient dazu, die Leistungsfähigkeit Ihrer Perl-Programme zu messen. Zu diesem Zweck wird die CPU-Zeit angezeigt, die in einem bestimmten Code-Abschnitt verbraucht wird. Das Modul ist Teil der Standardbibliothek.

### `Devel::Dprof`

`Devel::Dprof` ist ein sogenannter Profiler für Perl, der Informationen über die Ausführungszeiten eines Programms und seiner einzelnen Subroutinen sammelt.

### `ExtUtils`

Hinter `ExtUtils` verbirgt sich eine Reihe von Modulen, die Ihnen helfen, Perl- Erweiterungen (XSUBs) zu erstellen und zu paketieren. Viele von ihnen sind Teil der Standardbibliothek.

### `Usage`

Mit dem `Usage`-Modul können Sie die Argumente von Subroutinen auf ihre Gültigkeit hin prüfen. Mit Hilfe dieses Moduls läßt sich leicht sicherstellen, dass die Argumente einer Subroutine einen bestimmten Wert enthalten oder von einem bestimmten Datentyp sind.

## Betriebssystem-Schnittstellen

Während Perl mehr oder weniger plattformunabhängig ist, stellen Module ganz spezielle plattformspezifische Funktionalität zur Verfügung, die Sie nutzen können, wenn Sie mit einer ganz bestimmten Plattform arbeiten.

### `AppleII`

Das Modul `AppleII` bietet Ihnen Zugriff auf AppleII-Grafiken auf Blockebene.

### `BSD::Resource`

Wenn Ihr System die `BSD`-Funktionen `getrusage()`, `getrlimit()`, `setrlimit()`, `getpriority()` und/oder `setpriority()` unterstützt, können Sie mit dem Modul `BSD::Resource` über Perl darauf zugreifen.

### `BSD::Time`

Wenn Ihr Betriebssystem die `BSD`-Funktionen `gettimeofday()` und `settimeofday()` unterstützt, stehen sie Ihnen mit diesem Modul auch in Ihren Perl-Programmen zur Verfügung

### `Env`

Das `Env`-Modul macht Umgebungsvariablen über den `%ENV`-Hash Ihrem Perl- Programm verfügbar. Es ist Teil der Standardbibliothek.

### `Fcntl`

Das Modul `Fcntl`, »Fcntl« steht für File Control (Kontrolle über Dateien), bietet Ihnen Zugriff auf Low-Level-Systemaufrufe, mit denen Sie Dateideskriptoren manipulieren können. Es ist Teil der Standardbibliothek.

### Mac-Module

MacPerl enthält eine Reihe von Modulen, die Unterstützung für die Verwendung von Macintosh-Features in Perl-Skripten bieten. Daneben finden Sie auch im CPAN Module für den Zugriff auf weitere Macintosh-Features, beispielswese `Mac::Types` für den Zugriff auf Macintosh-Dateityp-Informationen, `Mac::Apps::Launch` zum Starten oder Verlassen von Anwendungen oder `Mac::Apps:MacPGP`, mit der Sie eine Schnittstelle zu der Mac-Version von PGP (Pretty Good Privacy) herstellen können.

### `OS2`

Das `OS2`-Modul enthält Binärdateien und Dienstprogramme für die OS2-Version von Perl.

### `POSIX`

Das `POSIX`-Modul bietet Zugriff auf die Funktionen, die ein Betriebssystem implementieren muss, um `POSIX`-kompatibel zu sein. Es ist Teil der Standardbibliothek, aber nur auf `POSIX`-kompatiblen Plattformen.

## Netzwerkmodule

Netzwerkmodule bieten Schnittstellen zu geläufigen (und nicht so geläufigen) Netzwerkprotokollen und -diensten. Siehe auch »Module für HTML, HTTP, WWW und CGI«.

### `IPC::Signal`

`IPC::Signal` bietet Ihnen eine Methode, um Signale des Betriebssystems zu behandeln.

### `Net::Bind`

`Net::Bind` bietet Ihnen eine Schnittstelle, um Dämondateien zu binden.

### `Net::Cmd`

`Net::Cmd` ist ein Modul, das eine Reihe von Netzwerkbefehlen für Protokolle wie SMTP und FTP enthält. Es ist Teil des `libnet`-Bündels.

### `Net::Country`

`Net::Country` bildet die aus zwei Buchstaben bestehenden Ländercodes im Internet auf die vollen Ländernamen ab. Es weiß zum Beispiel, dass TM für Turkmenistan steht.

### `Net::DNS`

`Net::DNS` bietet eine Schnittstelle für DNS-Server. Mit diesem Modul kann jede Art von DNS-Anfrage ausgeführt werden.

### `Net::Domain`

`Net::Domain` erlaubt es Ihnen, den Hostnamen und die Domäne des aktuellen Hosts auszuwerten.

### `Net::FTP`

`Net::FTP` ist eine Schnittstelle zu FTP, dem Dateitransfer-Protokoll (File Transfer Protocol). Es ist Teil des `libnet`-Bündels.

### `Net::Gen`

`Net::Gen` ist eine allgemeine Socket-Schnittstelle für Perl. Es gehört zu dem `Net-ext`- Bündel.

### `Net::Ident`

`Net::Ident` wird verwendet, um den Benutzernamen am anderen Ende einer TCP- Verbindung zu ermitteln. Dabei wird vorausgesetzt, dass auf der Remote-Maschine `IDENTD` ausführt wird.

### `Net::Inet`

`Net::Inet` stellt die grundlegenden Dienste für Socket-basierte Kommunikation bereit und ist Teil des `Net-ext`-Bündels.

### `Net::Netrc`

`Net::Netrc` stellt eine Schnittstelle zu `.netrc`-Dateien bereit. Es ist Teil des `libnet`- Bündels.

### `Net::NIS, Net::NISPlus`

`Net::NIS` stellt eine Schnittstelle zu dem NIS (Network Information Service) von Sun bereit und ermöglicht es mehreren Computern, die Benutzerkonto-Informationen zu teilen. `Net::NISPlus` stellt eine Schnittstelle zu der zweiten Generation von Sun-NIS (NIS+) bereit.

### `Net::NNTP`

`Net::NNTP` ermöglicht Ihnen die Kommunikation über das Network News Transfer Protocol (wird von Usenet verwendet). Es ist Teil des `libnet`-Bündels.

### `Net::Ping`

`Net::Ping` erlaubt Ihnen, von einem Host die Informationen einzuholen, ob er an ist und wie lange es dauert, bis Ihre Pakete dort eingehen.

### `Net::POP3`

`Net::POP3` stellt eine Schnittstelle zu dem POP3-Protokoll bereit (POP steht für Post Office Protocol). In diesem Zusammenhang möchte ich auch auf das Modul `Mail::POP3Client` verweisen. `Net::POP3` ist Teil des `libnet`-Bündels.

### `Net::SMTP`

`Net::SMTP` stellt eine Schnittstelle zu dem Simple Mail Transfer Protocol bereit. Dieses Protokoll wird von dem meisten Computern im Internet für den Mail-Verkehr genutzt. Wenn Sie von einem Perl-Skript Mail senden wollen, sollten Sie dieses Modul nutzen. Es ist Teil des `libnet`-Bündels.

### `Net::SNPP`

`Net::SNPP` ist eine Schnittstelle zu dem Simple Network Pager Protocol. Es ist Teil des `libnet`-Bündels.

### `Net::SSLeay`

`Net::SSLeay` bietet eine Implementierung von Netscapes SSL-Protokoll (Secure Sokkets Layer), die in Perl-Programmen genutzt werden kann.

### `Net::TCP`

Mit `Net::TCP` können Sie via TCP über Sockets kommunizieren. Es ist Teil des `Net- ext`-Bündels.

### `Net::Telnet`

Mit `Net::Telnet` können Sie eine Telnet-Verbindung zu einem anderen Computer aufbauen und auf diesem Befehle ausführen.

### `Net::Time`

`Net::Time` erlaubt Ihnen, die aktuelle Zeit von einem anderen Computer im Internet festzustellen. Dieses Modul ist Teil des `libnet`-Bündels.

### `Net::UDP`

`Net::UDP` ermöglicht die Kommunikation über das `UDP`-Protocol. Es ist Teil des `Net- ext`-Bündels.

### `SNMP`

`SNMP` ist eine Schnittstelle zu dem Simple Network Management Protocol.

### `Socket`

`Socket` bietet zusätzliche Strukturen und Konstanten, um die Funktionen von Perl für die Socket-Kommunikation zu erweitern. Es ist Teil der Standardbibliothek.

## Unterstützung für Datentypen

Mit den Datentypmodulen können Sie Daten manipulieren, die zu bestimmten nicht von Perl unterstützten Datentypen gehören.

### `Date::DateCalc`

`Date::DateCalc` wird verwendet, um die Differenz zwischen zwei Datumsangaben oder die Zeit bis zu einem gegebenen Datum zu berechnen.

### `Date::Format`

`Date::Format` enthält einige Datumsformatierungs-Routinen, die die Datumswerte in ASCII-Code konvertieren. Es ist Teil des `TimeDate`-Bündels.

### `Date::Language`

`Date::Language` wird benötigt, um Datumsangaben in verschiedene Sprachen zu konvertieren. Es ist Teil des `TimeDate`-Bündels.

### `Date::Manip`

`Date::Manip` wird verwendet, um Datumswerte zu manipulieren. Es kann Zeitdifferenzen und Offsets berechnen, und es kann Datumsangaben in das Unix- Zeitformat parsen. Außerdem akzeptiert es die Datumsangaben in einer Vielzahl von Formaten.

### `Date::Parse`

`Date::Parse` konvertiert Datumsangaben in das Unix-Zeitformat. Es ist Teil des `TimeDate`-Bündels.

### `Math::BigFloat, Math::BigInt`

Mit `Math::Bigfloat` und `Math::BigInt` können Sie Integer und Fließkommazahlen beliebiger Länge in Perl verwenden. Es ist Teil der Standardbibliothek.

### `Math::Complex`

Mit `Math::Complex` können Sie komplexe Zahlen verarbeiten. Teil der Standardbibliothek.

### `Math::Fraction`

`Math::Fraction` ermöglicht es Ihnen, in Perl Brüche zu verarbeiten.

### `Math::Matrix`

`Math::Matrix` ermöglicht es Ihnen, in Perl mathematische Operationen auf Matrizen auszuführen.

### `Math::PRSG`

`Math::PRSG` bietet Ihnen einen viel leistungsfähigeren Generator von Zufallszahlen als der von Perl (`srand` und `rand`). PRSG steht für Pseudo Random Sequence Generator, wird jedoch von `Math::TrulyRandom` noch übertroffen.

### `Math::Trig`

`Math::Trig` bietet Ihnen Umkehrfunktionen und hyperbolische trigonometrische Funktionen. Diese sind auch in dem (gebündelten) `POSIX`-Modul zu finden.

### `Math::TrulyRandom`

`Math::TrulyRandom` erzeugt Zufallszahlen aus Interrupt-Timing-Diskrepanzen.

### `Ref`

Mit dem `Ref`-Modul können Sie Perl-Referenzen vergleichen und kopieren.

### `Sort::Versions`

`Sort::Versions` erlaubt Ihnen, Versionsnummern zu sortieren, so dass Nummern wie 4.1a, 1.1.1 und 4.003_02 in der richtigen Reihenfolge stehen.

### `Statistics::Descriptive`

Mit `Statistics::Descriptive` können Sie einfache statistische Operationen durchführen (zum Beispiel Mittel-, Median- und Modalwert sowie Standardabweichungen berechnen).

### `Time-Modules`

In dem Bündel `Time-Modules` sind folgende Module zum Behandeln und Ändern von Zeit- und Datumswerten enthalten: `Time::CTime`, `Time::JulianDay`, `Time::ParseDate`, `Time::Timezone` und `Time::DaysInMonth`.

### TimeDate-Bündel

Mit `TimeDate` verfügen Sie über ein weiteres Bündel von Modulen zum Konvertieren von Zeit- und Datumsangaben sowie zum Ändern von Zeit- und Datumswerten. Es enthält die folgenden Module: `Date::Format`, `Date:.:Language`, `Date::Parse` und `Time::Zone`.

## Datenbankspezifische Module

Diese Module bieten Schnittstellen zu relationalen Datenbankdateien sowie zu DBM- Datenbankdateien.

### `AnyDBM_File`

`AnyDBM_File` wird verwendet, um Dateien aller Datenbank-Manager-Formate zu handhaben, einschließlich DBM, GDBM, SDMB und so weiter. Es ist Teil der Standardbibliothek.

### `DBD`

`DBD` steht für Datenbanktreiber (Database Driver). Es handelt sich dabei um ein Paket, das einen Perl-Treiber für viele verschiedene relationale Datenbanken bereitstellt. Als Entwicklung der Perl-DBI-Initiative bietet es eine Standardschnittstelle zu allen Datenbanken, die es unterstützt. Zur Zeit gibt es DBD-Treiber für Oracle, Sybase, Informix, DB2, solid, MSQL, MySQL, ODBC und andere Systeme. DBD funktioniert so, dass es den Backend-Treiber für das `DBI`-Modul bereitstellt, das dann die Standard- Datenbankschnittstelle implementiert.

### `DBI`

`DBI` (Database Interface) implementiert eine Standardschnittstelle für den Zugriff auf relationale Datenbankdateien. Durch die Kombination des `DBI`-Moduls mit dem entsprechenden `DBD`-Treiber können Sie eine Verbindung zu den populärsten relationalen Datenbank-Engines im Handel herstellen.

### `DB_File`

`DB_File` stellt eine Schnittstelle zu Berkeley DB bereit, das frei verfügbar ist. Diese Funktionalität finden Sie auch in `AnyDBMF_File`.

### `Msql`

Das Modul `Msql` ist eine Schnittstelle zwischen Perl und Mini-SQL, einer relationalen Datenbank-Engine für Unix-Systeme. Diese Funktionalität erhalten Sie auch über `DBD/ DBI`.

### `Oraperl`

`Oraperl` ist eine Perl4-Schnittstelle zu Oracle-Datenbanken. Es wurde durch `DBI` und dem `DBD`-Treiber für Oracle ersetzt. Ich erwähne es hier nur, da es noch häufig zu finden ist.

### `Pg`

`Pg` ist eine Schnittstelle zu der frei verfügbaren relationalen Postgres-Datenbank- Engine.

### `SDBM_File`

`SDBM_File` ist eine Schnittstelle zu SDBM, dem Simple Database Manager, der Teil der Standardbibliothek ist. Da SDBM gebündelt ist, können Sie mit Hilfe dieses Moduls portierbare Skripts schreiben.

### `Sybperl`

`Sybperl` ist eine inzwischen veraltete Schnittstelle zu Sybase für Perl. Es wurde durch die Funktionalität in `DBI` und `DBD` ersetzt.

## Benutzerschnittstellen

Die Module für die Benutzerschnittstellen bieten Programmierschnittstellen von Perl zu Benutzerschnittstellen-Toolkits wie X Windows, curses und Tk.

### `Curses`

Das Modul `Curses` ermöglicht es Ihnen, ASCII-Benutzerschnittstellen mit curses zu erstellen.

### `Qt`

Das Modul `Qt` ermöglicht es Ihnen, das Toolkit Qt GUI für X Windows zu benutzen, das von Troll Tech geschrieben wurde.

### `Term::AnsiColor`

Mit `Term::AnsiColor` können Sie die Escape-Codes für die ANSI-Farbsequenzen verwenden.

### `Term::Gnuplot`

`Term::Gnuplot` ermöglicht es Ihnen, die Low-Level-Zeichenroutinen des Gnuplot- Systems von Perl aus zu verwenden.

### `Tk`

`Tk` ist eine Perl-Schnittstelle zu dem Tk-Grafik-Toolkit. Tk macht es einfach, Anwendungen in Skriptprachen (wie Perl) zu erstellen. Die häufig gestellten Fragen (FAQs) zu Perl/Tk finden Sie unter `http://www.perl.com/CPAN-local/doc/FAQs/tk/` .

### `X11::FVWM`

`X11::FVWM` ist eine Schnittstelle zu der `Fvwm2`-API (ein Windows-Manager für X Windows).

### `X11::Protocol`

`X11::Protocol` stellt eine Schnittstelle zu dem grundlegenden X-Windows-Protokoll bereit.

## Dateisystem-Module

Diese Module bieten Ihnen Zugang zu Optionen des Dateisystems, die sonst nicht von Perl unterstützt werden.

### `Cwd`

`Cwd` stellt drei Funktionen bereit, um das aktuelle Arbeitsverzeichnis von aus Perl einzustellen. Es ist Teil der Standardbibliothek.

### `File::Df`

Eine Implementierung des Unix-Befehls `df` in Perl. Mit diesem Befehl können Sie feststellen, wie voll Ihre Festplatte ist.

### `File::Flock`

`File::Flock` ist eine Hüllfunktion für den Systemaufruf `flock`. Der Systemaufruf `flock()` ermöglicht es Ihnen, Dateien zu sperren, damit nicht zwei Prozesse gleichzeitig in die gleiche Datei schreiben können. Auf diese Weise wird unnötiger Datenverlust verhindert. `File::Lock` ist eine weitere Hüllfunktion für `flock`.

### `File::Copy`

Mit `File::Copy` können Sie Dateien über den Namen oder den Datei-Handle von Perl aus kopieren. Es ist Teil des `File::Tools`-Bündels.

### `File::Lock`

`File::Lock` ist, analog zu `File::Flock`, eine Hüllfunktion für den Systemaufruf `flock`.

### `File::Lockf`

`File::Lockf` ist ebenfalls ein Modul zum Sperren von Dateien. Es unterscheidet sich von den anderen Modulen, da es statt `flock` den Systemaufruf `lockf` verwendet. Das hat den Vorteil, dass auch Dateien auf Festplatten, die dem Netzwerk angehängt sind, gesperrt werden können.

### `File::Recurse`

`File::Recurse` ermöglicht es Ihnen, eine Operation auf einem ganzen Verzeichnisbaum auszuführen. Es ist Teil des Moduls `File::Tools`.

### `File::Tools`

`File::Tools` enthält die Module `File::Copy` und `File::Recurse`.

## Module zur Stringverarbeitung

Im CPAN gibt es eine ganze Reihe von Modulen, die Ihnen Funktionen zur Bearbeitung von Strings zur Verfügung stellen. Bevor Sie selbst irgendwelchen Code zur Stringbearbeitung schreiben, sollten Sie auf alle Fälle prüfen, ob Ihnen nicht bereits jemand die Arbeit abgenommen hat.

## Optionen-/Argumentenverarbeitung

Diese Module dienen dazu, Optionen zu parsen, die Ihren Programmen in normalen Formaten übergeben wurden, einschließlich Befehlszeilenargumente und Windows `ini`-Dateien.

### `Getopt::Long`

`Getopt::Long` ermöglicht es Ihnen, `POSIX`-Befehlszeilenoptionen, inklusive Gnu- Erweiterungen, einzuparsen. Es ist Teil der Standardbibliothek.

### `Getopt::Mixed`

`Getopt::Mixed` ermöglicht es Ihnen, Befehlszeilenoptionen im Gnu-Stil zu verarbeiten. Es enthält Elemente von `Getopt::Long` und `Getopt::Std`.

### `Getopt::Std`

Mit `Getopt::Std` können Sie Befehlszeilenoptionen in Ihren Perl-Programmen verarbeiten. Details dazu finden Sie in den Beispielen aus Kapitel 15, »Dateien und E/ A«.

### `IniConf`

Mit `IniConf` können Sie die `ini`-Dateien von Windows lesen und schreiben.

## Internationalisierung und Lokalisierung

Mit diesen Modulen ist es leichter, Programme zu schreiben, die für die Verwendung in anderen Lokalen (landesspezifischen Umgebungen) entworfen werden.

### `I18N::Collate`

Mit `I18N::Collate` können Sie skalare Werte, die aus 8-Bit-Zeichen bestehen, auf der Basis der aktuellen Lokale vergleichen.

### `Locale::Codes`

`Locale::Codes` bietet Zugriff auf die komplette Liste der zweibuchstabigen Länder- Codes.

### `Unicode`

Das `Unicode`-Modul bietet Unterstützung für Unicode-Zeichensätze in Perl. Dieses Modul wird bald Teil der Perl-Kernsprache sein.

## Verschlüsselung, Authentifizierung und Sicherheit

Hierunter sind Module zusammengefaßt, die Zugriff auf Algorithmen zur allgemeinen Sicherheit, Verschlüsselung und Authentifizierung bieten. Einige dieser Module lassen sich nur anwenden, wenn bestimmte Systemebenen-Bibliotheken vorhanden sind.

### `Authen::Radius`

`Authen::Radius` bietet eine Schnittstelle zum Radius-Network-Authentication- Protokoll.

### `Crypt::Des`

`Crypt::Des` ermöglicht es Ihnen, den DES-Blockverschlüsselungs-Algorithmus zu verwenden.

### `Crypt::Idea`

`Crypt::Idea` ermöglicht es Ihnen, den IDEA-Blockverschlüsselungs-Algorithmus zu verwenden.

### `MD5`

`MD5` ist ein Nachrichtenverarbeitungs-Algorithmus, der es Ihnen ermöglicht, mit RSA einen Einwege-»Daumenabdruck« zu einer Nachricht zu erzeugen, der dazu dient, deren Integrität zu gewährleisten,. Mit dem MD5-Modul können Sie MD5- Daumenabdrücke erzeugen.

### `PGP`

Das `PGP`-Modul ist eine Schnittstelle zu der Verschlüsselungssoftware Pretty Good Privacy.

## Module für HTML, HTTP, WWW und CGI

Module, die für webspezifische Aufgaben benötigt werden, einschließlich der CGI- und Webclient-Programmierung.

### `Apache`

Die `Apache` Perl-Module ermöglichen Ihnen, in Perl Module für den Apache- Webserver zu schreiben. Diese werden dann von einem Perl-Interpreter ausgeführt, der in dem Apache `httpd`-Server eingebettet ist. Der Vorteil liegt darin, dass Sie dann nicht immer den Perl-Interpreter starten müssen, wenn eines dieser Programme aufgerufen wird.

### `CGI`

Das `CGI`-Modul, das ab Version 5.004 Teil der Standardbibliothek ist, läßt Sie schnell und einfach CGI-Programme aufsetzen, die Formulare erzeugen, verarbeiten und auf diese antworten. Es ist ein fast unentbehrliches Tool für alle CGI-Programmierer. Weitere Informationen dazu finden Sie in Kapitel 16, »Perl für CGI-Skripts«, oder in Sams Teach Yourself CGI-Programming in a Week.

### `libwww`

`libwww` ist ein großes Bündel von acht separaten Modulgruppen, mit denen Sie HTTP-Benutzeragenten in Perl erzeugen können. Des weiteren können Sie HTML parsen und übersetzen, MIME-codierten Inhalt bearbeiten etc. Die darin enthaltenen Bündel lauten `File`, `Font`, `HTML`, `HTTP`, `LWP`, `MIME`, `URI` und `WWW`.

## Archivierung und Komprimierung

Dieser Abschnitt behandelt die Schnittstellen zu allgemeinen Komprimierungsalgorithmen.

### `Compress`

`Compress` bietet eine Schnittstelle zu der Unix-Bibliothek `zlib`, mit der Sie Dateien mit der Standardkomprimierung von Unix (`.Z`) komprimieren können.

### `Convert::BinHex`

Mit `Convert::BinHex` können Sie Header, Daten- und Ressourcenverzweigungen aus Macintosh-Dateien extrahieren.

### `Convert::UU`

`Convert::UU` ermöglicht es Ihnen, Dateien mit uu zu codieren und zu decodieren.

## Grafik-/Bitmap-Manipulation

Dieser Abschnitt enthält Module zum Erstellen und Bearbeiten von Grafiken.

### `GD`

`GD` ist eine Perl-Version der beliebten gd-Bibliothek für C. Damit können Sie in Perl GIF-Grafiken erzeugen und bearbeiten.

### `Image::Size`

Mit `Image::Size` können Sie die Größe einer Grafik bestimmen.

### `Image::Magick`

PerlMagick ist eine Schnittstelle zu dem Grafik-Tool ImageMagick auf der Basis von X Windows.

## Mail und Usenet

Diese Module bieten Schnittstellen zu den allgemeinen Mail-Diensten und Usenet- News.

### `Mail::POP3Client`

`Mail::POP3Client` ist eine clientseitige Schnittstelle für POP3-Mailserver.

### `News::Newsrc`

`News::Newsrc` ermöglicht es Ihnen, mit Perl `.newsrc`-Dateien zu lesen und zu manipulieren. Die `.newsrc`-Dateien dienen dazu, die von einem Benutzer gelesenen Newsgroups zu verfolgen.

## Programmsteuerung

Mit diesen Modulen können Sie größeren Einfluß darauf nehmen, wie sich ihr Programm zur Laufzeit verhält. Sehen Sie dazu auch das Pragma `sigtrap`.

### `AtExit`

Das Modul `AtExit` ermöglicht Ihnen, Code zu schreiben, der ausgeführt wird, wenn Ihr Programm beendet ist. Eine ähnliche Funktionalität ist durch die `END`-Blocks gegeben (die am Tag 13 besprochen wurden). Auch das `POSIX`-Modul implementiert eine `atexit`-Funktion.

### `Religion`

Das Modul mit dem netten Namen `Religion` ermöglicht es Ihnen, anzugeben, wo Ihre Perl-Programme hingehen, wenn sie sterben (`die`). Zu diesem Zweck erleichtert Ihnen das Modul den Zugriff auf die Funktionen `$SIG{__DIE__}` und `$SIG{__WARN__}`.

## Datei-Handles und Eingabe/Ausgabe

Diese Module stellen zusätzliche Dienste für die Dateieingabe und -ausgabe in Ihren Programmen bereit.

### `DirHandle`

`DirHandle` ermöglicht es Ihnen, Verzeichnis-Handles als Objekte zu verwenden. Dieses Modul ist Teil der Standardbibliothek.

### `FileCache`

Das Modul `FileCache` erlaubt es Ihnen, die Beschränkungen bezüglich der Anzahl der zu einem Zeitpunkt gleichzeitig geöffneten Dateideskriptoren zu umgehen. Das Modul ist Teil der Standardbibliothek.

### `FileHandle`

Mit `FileHandle` können Sie Datei-Handles als Objekte verwenden. Es ist Teil der Standardbibliothek.

### `IO`

Mit dem Modul `IO` können Sie die Module `IO::Handle`, `IO::Seekable`, `IO::File`, `IO::Pipe` und `IO::Socket` gleichzeitig laden. Alle diese Module sind Teil der Standardbibliothek.

## Windows-Module

Windows-Module stellen Ihnen Funktionalität zur Verfügung, die speziell auf Windows- Plattformen zugeschnitten ist. Sie bieten Zugriff auf Nur-Windows-Dienste oder stellen die Funktionalität anderer Plattformen für Windows-Benutzer bereit.

### `libwin32`

Das `libwin32`-Bündel ist eine Familie von Modulen, die Zugriff auf eine Vielzahl von Optionen der Windows-Plattform bieten. Sie sind Teil der ActiveState-Version von Perl für Windows. Viele von ihnen sind in Kapitel 18, »Perl und das Betriebssystem«, beschrieben.

## Andere Module

Dieser Abschnitt beschreibt Module, die sich nicht unter den anderen Kategorien des CPAN einordnen lassen.

### `Archie`

Archie ist ein Dienst, der den Inhalt von FTP-Sites katalogisiert. Mit dem `Archie`- Modul können Sie Archie-Anfragen von Perl aus erzeugen.

### `Business::CreditCard`

Mit dem Modul `Business::CreditCard` können Sie die Gültigkeit von Kreditkarten überprüfen und den Kartentyp aus der Kartennummer ablesen.

### `CPAN`

Das `CPAN`-Modul ermöglicht Ihnen, Perl-Module aus dem CPAN automatisch herunterzuladen und zu installieren. Dafür benötigen Sie das Modul `Net::FTP` und eine Internet-Verbindung.

© Markt&Technik Verlag, ein Imprint der Pearson Education Deutschland GmbH