You are here: Perldoc Web>PerlDokumentListe>Perl (2005-04-28)

perl

perl Dokumentation zu Perl 5.9.2 | Download als POD | Wie kann ich hier etwas ändern?

BEZEICHNUNG

perl - Practical Extraction and Report Language (Praktische Auszugs- und Berichtssprache)

ÜBERSICHT

B<perl> S<[ B<-sTuU> ]> S<[ B<-hv> ] [ B<-V>[:I<konfigurationsvar>] ]>
    S<[ B<-cw> ] [ B<-d>[:I<debugger>] ] [ B<-D>[I<zahl/liste>] ]>
    S<[ B<-pna> ] [ B<-F>I<muster> ] [ B<-l>[I<oktal>] ] [ B<-0>[I<oktal>] ]>
    S<[ B<-I>I<verzeichnis> ] [ B<-m>[B<->]I<modul> ] [ B<-M>[B<->]I<'modul...'> ]>
    S<[ B<-P> ]> S<[ B<-S> ]> S<[ B<-x>[I<verzeichnis>] ]>
    S<[ B<-i>[I<endung>] ]> S<[ B<-e> I<'befehl'> ] 
    [ B<--> ] [ I<programmdatei> ] [ I<argument> ]...>

Wenn Perl neu für Sie ist, dann sollten Sie perlintro zuerst lesen. Es handelt sich um eine allgemeine Einführung für Anfänger und bietet einen gewissen Hintergrund, um Ihnen die Orientierung im Rest der ausführlichen Dokumentation von Perl zu erleichtern.

Für einen einfacheren Zugriff wurde das Perl-Handbuch in verschiedene Abschnitte aufgeteilt.

Übersichtsdokumente

     perl              Perl-Übersicht (dieses Dokument)
     perlintro         Perl Einführung für Einsteiger
     perltoc           Inhaltsverzeichnis der Perl-Dokumentation

Tutorien

     perlreftut        Kurze Einführung in Referenzen in Perl
     perldsc           Einführung Datenstrukturen in Perl
     perllol           Datenstrukturen in Perl: Arrays von Arrays

     perlrequick       Kurzanleitung Reguläre Ausdrücke
     perlretut         Tutorium Reguläre Ausdrücke

     perlboot          Tutorium objektorientiertes Perl für Einsteiger
     perltoot          Tutorium objektorientiertes Perl, Teil 1
     perltooc          Tutorium objektorientiertes Perl, Teil 2
     perlbot           Tricks und Beispiele zu objektorientertem Perl

     perlstyle         Perl Programmierstil

     perlcheat         Perl Spickzettel
     perltrap          Fallstricke in Perl für Unvorsichtige
     perldebtut        Tutorium Debugging in Perl

     perlfaq           Perl FAQ
       perlfaq1          Allgemeine Fragen zu Perl
       perlfaq2          Bezugsquellen und Informationen zu Perl
       perlfaq3          Programmierwerkzeuge
       perlfaq4          Datenverarbeitung
       perlfaq5          Dateien und Formate
       perlfaq6          Reguläre Ausdrücke
       perlfaq7          Sonstige Sprachprobleme
       perlfaq8          Systeminteraktion
       perlfaq9          Netzwerke

Referenz-Handbücher

     perlsyn           Syntax
     perldata          Datenstrukturen
     perlop            Operatoren und Vorrang
     perlsub           Subroutinen
     perlfunc          Eingebaute Funktionen
       perlopentut       Tutorium zu open()
       perlpacktut       Tutorium zu pack() und unpack()
     perlpod           Perls "plain old documentation"
     perlpodspec       POD Formatspezifikation
     perlrun           Programmstart und Optionen
     perldiag          Diagnosemeldungen
     perllexwarn       Warnungen und ihre Kontrolle
     perldebug         Debugging
     perlvar           Vordefinierte Variablen
     perlre            Reguläre Ausdrücke, der Rest
     perlreref         Reguläre Ausdrücke Kurzreferenz
     perlref           Referenzen, der Rest
     perlform          Formate
     perlobj           Objekte
     perltie           Objekte hinter einfachen Variablen verstecken
       perldbmfilter     DBM-Filter

     perlipc           Interprozess-Kommunikation
     perlfork          Informationen zu fork()
     perlnumber        Semantik von Zahlen

     perlthrtut        Tutorium zu Perl-Threads
       perlothrtut       Tutorium zu alten Perl-Threads

     perlport          Anleitung zur Portierung von Perl
     perllocale        Locale-Unterstützung
     perluniintro      Einführung in Perl-Unicode
     perlunicode       Unicode-Unterstützung
     perlebcdic        Überlegungen zur Ausführung von Perl auf EBCDIC-Plattformen

     perlsec           Sicherheit

     perlmod           Perl-Module: Wie sie funktionieren
     perlmodlib        Perl-Module: Wie man sie schreibt und benutzt
     perlmodstyle      Perl-Module: Wie man Module ordentlich schreibt
     perlmodinstall    Perl-Module: Wie man vom CPAN installiert
     perlnewmod        Perl-Module: Ein Modul für die Distribution vorbereiten

     perlutil          Hilfsmittel, die in der Perl-Distribution enthalten sind

     perlcompile       Einführung in die Perl-Compiler-Suite

     perlfilter        Quellcode-Filter

Interna und das C-Interface

     perlembed         Wie man Perl in seine C- oder C++-Anwendung einbindet
     perldebguts       Interna und Tipps zum Debuggen in Perl
     perlxstut         Tutorium zu Perl XS
     perlxs            Anwendungsprogramm-Interface (API) von Perl XS
     perlclib          Interne Entsprechungen zu Funktionen der Standard-C-Library
     perlguts          Interne Funktionen für Perl-Erweiterungen
     perlcall          Aufruf-Konventionen für Perl von C aus

     perlapi           Listing der Perl-API (automatisch erzeugt)
     perlintern        Interne Funktionen Perl (automatisch erzeugt)
     perliol           C-API für Perls schichtbasierte I/O-Implementierung
     perlapio          Interne I/O-Abstraktions-Schnittstelle

     perlhack          Perl Hackers Guide

Verschiedenes

     perlbook          Buchempfehlungen
     perltodo          ToDo-Liste

     perldoc           Perldokumentation im Pod-Format nachschlagen

     perlhist          Historische Aufzeichnungen
     perldelta         Änderungen seit der vorigen Version
     perl591delta      Änderungen in Version 5.9.1
     perl590delta      Änderungen in Version 5.9.0
     perl586delta      Änderungen in Version 5.8.6
     perl585delta      Änderungen in Version 5.8.5
     perl584delta      Änderungen in Version 5.8.4
     perl583delta      Änderungen in Version 5.8.3
     perl582delta      Änderungen in Version 5.8.2
     perl581delta      Änderungen in Version 5.8.1
     perl58delta       Änderungen in Version 5.8.0
     perl573delta      Änderungen in Version 5.7.3
     perl572delta      Änderungen in Version 5.7.2
     perl571delta      Änderungen in Version 5.7.1
     perl570delta      Änderungen in Version 5.7.0
     perl561delta      Änderungen in Version 5.6.1
     perl56delta       Änderungen in Version 5.6
     perl5005delta     Änderungen in Version 5.005
     perl5004delta     Änderungen in Version 5.004

     perlartistic      Perl Artistic License
     perlgpl           GNU General Public License

Sprachspezifisches

     perlcn            Perl für Vereinfachtes Chinesisch (in EUC-CN)
     perljp            Perl für Japanisch (in EUC-JP)
     perlko            Perl für Koreanisch (in EUC-KR)
     perltw            Perl für Traditionelles Chinesisch (in Big5)

Plattformspezifisches

     perlaix           Anmerkungen zu AIX
     perlamiga         Anmerkungen zu AmigaOS
     perlapollo        Anmerkungen zu Apollo DomainOS
     perlbeos          Anmerkungen zu BeOS
     perlbs2000        Anmerkungen zu POSIX-BC BS2000
     perlce            Anmerkungen zu WinCE
     perlcygwin        Anmerkungen zu Cygwin
     perldgux          Anmerkungen zu DG/UX
     perldos           Anmerkungen zu DOS
     perlepoc          Anmerkungen zu EPOC
     perlfreebsd       Anmerkungen zu FreeBSD
     perlhpux          Anmerkungen zu HP-UX
     perlhurd          Anmerkungen zu Hurd
     perlirix          Anmerkungen zu Irix
     perlmachten       Anmerkungen zu Power MachTen
     perlmacos         Anmerkungen zu Mac OS (Classic)
     perlmacosx        Anmerkungen zu Mac OS X
     perlmint          Anmerkungen zu MiNT
     perlmpeix         Anmerkungen zu MPE/iX
     perlnetware       Anmerkungen zu NetWare
     perlos2           Anmerkungen zu OS/2
     perlos390         Anmerkungen zu OS/390
     perlos400         Anmerkungen zu OS/400
     perlplan9         Anmerkungen zu Plan 9
     perlqnx           Anmerkungen zu QNX
     perlsolaris       Anmerkungen zu Solaris
     perltru64         Anmerkungen zu Tru64
     perluts           Anmerkungen zu UTS
     perlvmesa         Anmerkungen zu VM/ESA
     perlvms           Anmerkungen zu VMS
     perlvos           Anmerkungen zu Stratus VOS
     perlwin32         Anmerkungen zu Windows

Der Standard-Installationspfad für die oben genannten Manpages ist /usr/local/man/ .

Für Perl-Module existiert eine zusätzliche ausführliche Dokumentation. Die Standard-Konfiguration von Perl legt diese zusätzliche Dokumentation im Verzeichnis /usr/local/lib/perl5/man ab (oder im Unterverzeichnis man des Perl Library-Verzeichnisses). Einiges dieser zusätzlichen Dokumentation wird standardmäßig bei Perl mitgeliefert, aber auch die Dokumentation zu nicht mitgelieferten Modulen wird hier abgelegt.

Sie sollten in der Lage sein, die Perl-Dokumentation mit dem Programm man(1) anzuschauen, indem Sie die entsprechenden Verzeichnisse in die passenden Startdateien oder in die Umgebungsvariable MANPATH eintragen. Um herauszufinden, wo bei der Installation die Manpages installiert wurden, geben Sie folgendes ein:

    perl -V:man.dir

Wenn die Verzeichnisse einen gemeinsamen Anteil haben, wie im Fall /usr/local/man/man1 und /usr/local/man/man3 , dann müssen Sie nur diesen Anteil ( /usr/local/man ) in die Konfiguration von man(1) oder die Variable MANPATH aufnehmen. Wenn es keinen gemeinsamen Anteil gibt, müssen sie beide Pfade aufnehmen.

Wenn dies aus irgendeinem Grund nicht funktioniert, dann können Sie immer noch das mitgelieferte Skript perldoc benutzen, um sich die Moduldokumentation anzuschauen. Sie sollten auch schauen, ob Sie einen Ersatz für das Programm man(1) bekommen.

Wenn mit Ihrem Perl-Programm etwas schief gelaufen ist und Sie keine Ahnung haben, wo sie nach Hilfe schauen sollen, dann versuchen Sie es zuerst mit der Optino -w . Damit werden Sie oft einen Hinweis erhalten, wo genau das Problem liegt.

BESCHREIBUNG

Perl ist eine Sprache, die darauf optimiert wurde, beliebige Textdateien zu durchsuchen, Informationen aus diesen Textdateien zu extrahieren und basierend auf diesen Informationen Berichte zu erstellen. Es ist auch für viele Aufgaben der Systemverwaltung gut geeignet. Die Sprache ist darauf ausgelegt worden, eher praktisch (einfach zu benutzen, effizient, vollständig) zu sein als schön anzusehen (schlank, elegant, minimal).

Perl kombiniert (zumindest nach Meinung des Autors) einige der besten Eigenschaften von C, sed , awk und sh , sodass jemand, der sich mit diesen Sprachen auskennt, mit Perl wenig Probleme haben sollte. (Sprachhistoriker werden auch einige Überreste von csh , Pascal und sogar BASIC-PLUS finden.) Die Syntax der Ausdrücke lehnt sich stark an die C-Syntax an. Anders als die meisten Unix-Werkzeuge verzichtet Perl darauf, die Größe Ihrer Daten willkürlich zu beschränken - wenn Sie den nötigen Speicher haben, kann Perl Ihre ganze Datei in einen einzelnen String einlesen. Die Rekursionstiefe ist nicht beschränkt. Und die Tabellen, die von Hashes (manchmal auch als "Assoziative Arrays" bezeichnet) benutzt werden, wachsen nach Bedarf, um eine eingeschränkte Performance zu vermeiden. Perl kann ausgeklügelte Mechanismen zur Mustererkennung anwenden, um große Datenmengen schnell zu durchsuchen. Obwohl es auf die Untersuchung von Text optimiert ist, kann Perl auch mit binären Daten umgehen und auch DBM-Dateien wie Hashes behandeln. Perlskripte, die setuid ausgeführt werden, sind sicherer als ebensolche C-Programme, da durch einen Mechanismus zur Datenflussverfolgung viele dumme Sicherheitslöcher vermieden werden.

Wenn Sie ein Problem haben, dass man normalerweise mit sed , awk oder sh lösen würde, aber deren Leistungsfähigkeit überschreitet oder etwas schneller laufen soll, und wenn Sie das dumme Teil nicht in C schreiben wollen, dann ist Perl möglicherweise etwas für Sie. Es gibt auch Übersetzer, die Ihre sed - und awk -Skripte in Perl-Skripte übersetzen.

Aber halt, da gibt es noch mehr ...

Perl in der Version 5, die 1993 eingeführt wurde (siehe perlhist), ist eine fast komplette Neuentwicklung mit den folgenden zusätzlichen Vorteilen:

  • Modularität und Wiederverwendbarkeit durch zahllose Module

    Beschrieben in perlmod, perlmodlib und perlmodinstall.

  • Einbettbar und erweiterbar

    Beschrieben in perlembed, perlxstut, perlxs, perlcall, perlguts und xsubpp?.

  • Selbstdefinierbare magische Variablen (einschließlich mehrerer DBM-Implementierungen)

    Beschrieben in perltie und AnyDBM_File.

  • Subroutinen können nun überschrieben, automatisch geladen ("autoload") und mit Prototypen implementiert werden.

    Beschrieben in perlsub.

  • Beliebig verschachtelte Datenstrukturen und anonyme Funktionen

    Beschrieben in perlreftut, perlref, perldsc und perllol.

  • Objektorientierte Programmierung

    Beschrieben in perlobj, perlboot, perltoot, perltooc und perlbot.

  • Unterstützung für Threads

    Beschrieben in perlthrtut und treads?.

  • Unterstützung für Unicode, Internationalisierung und Lokalisierung

    Beschrieben in perluniintro, perllocale und Locale::Maketext?.

  • Lexikalische Beschränkung des Geltungsbereichs

    Beschrieben in perlsub.

  • Verbesserungen bei Regulären Ausdrücken

    Beschrieben in perlre mit zusätzlichen Beispielen in perlop.

  • Verbesserter Debugger und interaktive Perl-Umgebung mit integrierter Editor-Unterstützung

    Beschrieben in perldebtut, perldebug, perldebguts.

  • POSIX-1003.1-fähige Bibliothek

    Beschrieben in POSIX.

Gut, damit wurde jetzt definitiv genug die Werbetrommel gerührt.

VERFÜGBARKEIT

Perl gibt es für die meisten Betriebssysteme, einschließlich quasi aller Unix-artigen Plattformen. Eine Liste findet sich in L<perlport/"Unterstützte Plattformen">.

UMGEBUNGSVARIABLEN

Siehe perlrun.

AUTOR

Larry Wall <larry@wall.org>, mit der Hilfe von Unmengen anderer Leute.

Wenn Ihre Perl-Erfolgsgeschichten oder Ihre Perl-Empfehlungen vielleicht für andere hilfreich sein kann, die sich für den Einsatz von Perl in ihren Anwendungen einsetzen möchten, oder auch wenn Sie einfach Ihre Dankbarkeit gegenüber Larry und den Perl-Entwicklern ausdrücken wollen, dann schreiben Sie an perl-thanks@perl.example.com.org .

DATEIEN

 "@INC"         Standort der Perl-Bibliotheken

SIEHE AUCH

 a2p            Übersetzer awk zu Perl
 s2p            Übersetzer sed zu Perl

 http://www.perl.org/       Die Perl-Homepage
 http://www.perl.com/       Artikel zu Perl (bei O'Reilly Media)
 http://www.cpan.org/       Das Comprehensive Perl Archive
 http://www.pm.org/         Die Perl-Monger

DIAGNOSE

Das Pragma use warnings (und die Kommandozeilenoption -w ) erzeugt einige sehenswerte Diagnoseausgaben.

Unter perldiag findet man Erklärungen für alle Diagnosemeldungen von Perl. Das Pragma use diagnostics wandelt automatisch Perls normalerweise knapp gehaltene Warnungen und Fehlermeldungen in diese längere Form um.

Kompilationsfehler teilen Ihnen die Zeilennummer mit, in der der Fehler aufgetaucht ist, zusammen mit einem Hinweis auf das nächste Token oder den nächsten Tokentyp, das oder der gerade untersucht werden sollte. (In einem Skript, das über die Option -e an Perl übergeben wird, zählt jedes -e als eine Zeile.)

Skripte, die setuid ausgeführt werden, haben zusätzliche Beschränkungen, die zu Fehlermeldungen wie "Insecure dependency" führen können. Siehe perlsec.

Haben wir schon erwähnt, dass Sie auf jeden Fall die Option -w berücksichtigen sollten?

BUGS

Die Option -w ist keine Pflicht.

Perl ist auf Gedeih und Verderb darauf angewiesen, wie Ihre Maschine verschiedene Operationen wie Typecasts, atof() oder Fließkomma-Ausgaben mit sprintf() definiert.

Wenn Ihr stdio ein seek() oder eof() zwischen Lese- und Schreiboperationen auf einen bestimmten Datenstrom verlangt, dann gilt das auch für Perl. (Außer bei sysread() und syswrite().)

Obwohl keiner der eingebauten Datentypen eine willkürliche Größenbeschränkung hat (außer der Speichergröße), gibt es ein paar willkürliche Grenzen: ein bestimmter Variablenname darf nicht größer als 251 Zeichen sein. Zeilenzahlen, die bei Diagnosen ausgegeben werden, sind intern als short integer gespeichert und damit beschränkt auf 65535 (höhere Zahlen erleiden normalerweise einen Überlauf).

Sie können Ihre Fehlerberichte an perlbug@perl.example.com.org schicken. (Stellen Sie sicher, dass Sie die vollständige Konfiguration mitschicken, wie sie vom Programm myconfig im Verzeichnisbaum der Perl-Quellen ausgegeben wird.) Wenn es Ihnen gelungen ist, perl zu übersetzen, dann kann Ihnen das Skript perlbug im Unterverzeichnis utils/ dabei helfen, einen Fehlerbericht einzuschicken.

Perl steht in Wahrheit für "Pathologically Eclectic Rubbish Lister", aber erzählen Sie niemandem, dass ich das gesagt habe.

ANMERKUNGEN

Das Perl-Motto ist "There's more than one way to do it" - "Es gibt mehr als einen Weg, es zu machen". Zu erahnen, wie viele mehr es gibt, wird dem Leser als Übung überlassen.

Die drei Haupt-Tugenden eines Programmierers sind Faulheit, Ungeduld und Anmaßung. Im Kamelbuch steht, warum.

Topic attachments
I Attachment Action Size Date Who Comment
perl-5.9.2.podpod perl-5.9.2.pod manage 16.9 K 2005-04-28 - 16:38 HaraldBongartz perl.pod aus der Version 5.9.2
Topic revision: r3 - 2005-04-28 - 15:44:00 - HaraldBongartz
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.