Scroll to navigation

PERL(1) Perl-Referenzanleitung für Programmierer PERL(1)

BEZEICHNUNG

perl - Der Perl-5-Sprachinterpreter

ÜBERSICHT

perl-sTtuUWX ]
-hv ] [ -V[:Konfigvar] ]
-cw ] [ -d[t][:Debugger] ] [ -D[Nummer/Liste] ]
-pna ] [ -FMuster ] [ -l[oktal] ] [ -0[oktal/hexadezimal] ]
-IVerz ] [ -m[-]Modul ] [ -M[-]'Modul…' ] [ -f ]
-C [Nummer/Liste]
-S ]
-x[Verz] ]
-i[Erweiterung] ]
[ [-e|-E'Befehl' ] [ -- ] [ Programmdatei ] [ Argument ]…

Für weitere Informationen über diese Optionen können Sie »perldoc perlrun« ausführen.

HILFE ERHALTEN

Das Programm perldoc(1) gibt Ihnen auf die gesamte Dokumentation Zugriff, die mit Perl kommt. Sie können weitere Dokumentation, Anleitungen und Hilfe aus der Gemeinschaft online unter <https://www.perl.org/> erhalten.

Falls Sie bei Perl neu dabei sind, sollten Sie am Anfang »perldoc perlintro« ausführen. Hier finden Sie eine allgemeine Einführung für Anfänger und es werden Hintergrundinformationen bereitgestellt, um Ihnen beim Navigieren durch die restliche ausführliche Perl-Dokumentation zu helfen. Führen Sie »perldoc perldoc« aus, um mehr darüber zu erfahren, was Sie mit perldoc(1) machen können.

Um den Zugriff zu erleichtern, wurde das Perl-Handbuch in mehrere Abschnitte aufgeteilt.

Überblick

    perl                Perl-Überblick (dieser Abschnitt)
    perlintro           Perl-Einführung für Anfänger
    perlrun             Perl-Ausführung und -Optionen
    perltoc             Inhaltsverzeichnis der Perl-Dokumentation

Anleitungen

    perlreftut          Perl-Referenzen - kurze Einführung
    perldsc             Perl-Datenstrukturen: Einleitung
    perllol             Perl-Datenstrukturen: Felder von Feldern
    perlrequick         reguläre Perl-Ausdrücke: Schnellstart
    perlretut           reguläre Perl-Ausdrücke: Anleitung
    perlootut           Perl-OO-Anleitung für Anfänger
    perlperf            Perl-Leistung- und -Optimierungstechniken
    perlstyle           Perl-Stil-Anleitung
    perlcheat           Spickzettel für Perl
    perltrap            Perl-Fallen für die Unaufmerksamen
    perldebtut          Perl-Fehlersuch-Anleitung
    perlfaq             häufig gestellte Fragen zu Perl
      perlfaq1          Allgemeine Fragen über Perl
      perlfaq2          Finden von und Lernen über Perl
      perlfaq3          Programmierwerkzeuge
      perlfaq4          Datenbearbeitung
      perlfaq5          Dateien und Formate
      perlfaq6          Reguläre Ausdrücke
      perlfaq7          Perl-Sprachprobleme
      perlfaq8          System-Interaktion
      perlfaq9          Vernetzung

Referenzhandbuch

    perlsyn             Perl-Syntax: Deklarationen, Aussagen, Kommentare
    perldata            Perl-Datenstrukturen
    perlop              Perl-Ausdrücke: Operatoren, Vorrang, wörtliche Zeichenketten
    perlsub             Perl-Subroutinen
    perlfunc            eingebaute Perl-Funktionen
      perlopentut       Perl-open()-Anleitung
      perlpacktut       Perl-pack()- und -unpack()-Anleitung
    perlpod             einfache altertümliche Perl-Dokumentation
    perlpodspec         einfache altertümliche Perl-Dokumentation: Formatspezifikation
    perldocstyle        Perl-Stilanleitung für Kerndokumentation
    perlpodstyle        Perl-POD-Stilanleitung
    perldiag            Perl-Diagnosemeldungen
    perldeprecation     Perl-Missbilligungen
    perllexwarn         Perl-Warnungen und ihre Steuerung
    perldebug           Perl-Fehlersuche
    perlvar             vordefinierte Perl-Variablen
    perlre              reguläre Perl-Ausdrücke, der Rest der Geschichte
    perlrebackslash     reguläre Perl-Ausdrücke: Rückwärtsschrägstrich-Sequenzen
    perlrecharclass     reguläre Perl-Ausdrücke: Zeichenklassen
    perlreref           reguläre Perl-Ausdrücke: Schnellreferenz
    perlref             Perl-Referenzen, der Rest der Geschichte
    perlform            Perl-Formate
    perlobj             Perl-Objekte
    perltie             Perl-Objekte, die hinter einfachen Variablen versteckt sind
      perldbmfilter     Perl-DBM-Filter
    perlclass           Perl-Klassensyntax
    perlipc             Perl-Interprozesskommunikation
    perlfork            Perl-fork()-Information
    perlnumber          Perl-Zahlensemantik
    perlthrtut          Perl-Threads-Anleitung
    perlport            Perl-Portabilitätsanleitung
    perllocale          Perl-Locale-Unterstützung
    perluniintro        Perl-Unicode-Einleitung
    perlunicode         Perl-Unicode-Unterstützung
    perlunicook         Perl-Unicode-Kochbuch
    perlunifaq          Perl-Unicode FAQ
    perluniprops        Index der Unicode-Eigenschaften in Perl
    perlunitut          Perl-Unicode-Anleitung
    perlebcdic          Erörterungen zur Ausführung von Perl auf EBCDIC-Plattformen
    perlsec             Perl-Sicherheit
    perlsecpolicy       Handhabung von Perl-Sicherheitsmeldungen
    perlmod             Perl-Module: wie sie funktionieren
    perlmodlib          Perl-Module: wie sie zu schreiben und verwenden sind
    perlmodstyle        Perl-Module: wie Module mit Stil zu schreiben sind
    perlmodinstall      Perl-Module: wie sie von CPAN zu installieren sind
    perlnewmod          Perl-Module: Vorbereitung eines Modules zum Vertrieb
    perlpragma          Perl-Module: Schreiben eines Benutzer-Pragmas
    perlutil            Hilfswerkzeuge, die mit der Perl-Distribution paketiert sind
    perlfilter          Perl-Quellcode-Filter
    perldtrace          Perls Unterstützung für DTrace
    perlglossary        Perl Glossar

Interna und C-Sprachschnittstelle

    perlembed           Perl-Wege, um Perl in Ihre C- oder C++-Anwendung einzubetten
    perldebguts         Perl-Fehlersuche Tipps und Tricks
    perlxstut           Perl-XS-Anleitung
    perlxs              Perl-XS-Anwendungs-Programmierschnittstelle
    perlxstypemap       Perl-XS-C/Perl-Typumwandlungswerkzeuge
    perlclib            Interagieren mit Standard-C-Bibliotheksfunktionen
    perlguts            Perl-interne Funktionen für alle, die Erweiterungen erstellen
    perlcall            Perl-Aufrufkonvention aus C
    perlmroapi          Perl-Methoden-Auflösungs-Erweiterungs-Schnittstelle
    perlreapi           reguläre Perl-Ausdrücke: Erweiterungsschnittstelle
    perlreguts          Perl-Interna der regulären Ausdruck-Maschine
    perlclassguts       Interna der Klassensyntax
    perlapi             Perl-API-Auflistung (automatisch erstellt)
    perlintern          Perl-interne Funktionen (automatisch erstellt)
    perliol             C-API für Perl's Implementierung von E/A in Schichten
    perlapio            Perl-interne E/A-Abstrahierungsschnittstelle
    perlhack            Perl-Hacker-Anleitung
    perlsource          Anleitung für den Perl-Quellbaum
    perlinterp          Überblick über die Quellen des Perl-Interpreters und wie er funktioniert
    perlhacktut         Durchlauf durch die Erstellung eines einfachen C-Code-Patches
    perlhacktips        Tipps zum Code-Hacking des Perl-Kerns
    perlpolicy          Perl-Entwicklungsrichtlinien
    perlgov             Perl-Regeln der Projektsteuerung
    perlgit             Verwendung von Git mit dem Perl-Depot

Geschichte

    perlhist            Perl-Geschichtsblätter
    perldelta           Perl-Änderungen seit vorherigen Versionen
    perl5400delta       Perl-Änderungen in Version 5.40.0
    perl5382delta       Perl-Änderungen in Version 5.38.2
    perl5381delta       Perl-Änderungen in Version 5.38.1
    perl5380delta       Perl-Änderungen in Version 5.38.0
    perl5363delta       Perl-Änderungen in Version 5.36.3
    perl5362delta       Perl-Änderungen in Version 5.36.2
    perl5361delta       Perl-Änderungen in Version 5.36.1
    perl5360delta       Perl-Änderungen in Version 5.36.0
    perl5343delta       Perl-Änderungen in Version 5.34.3
    perl5342delta       Perl-Änderungen in Version 5.34.2
    perl5341delta       Perl-Änderungen in Version 5.34.1
    perl5340delta       Perl-Änderungen in Version 5.34.0
    perl5321delta       Perl-Änderungen in Version 5.32.1
    perl5320delta       Perl-Änderungen in Version 5.32.0
    perl5303delta       Perl-Änderungen in Version 5.30.3
    perl5302delta       Perl-Änderungen in Version 5.30.2
    perl5301delta       Perl-Änderungen in Version 5.30.1
    perl5300delta       Perl-Änderungen in Version 5.30.0
    perl5283delta       Perl-Änderungen in Version 5.28.3
    perl5282delta       Perl-Änderungen in Version 5.28.2
    perl5281delta       Perl-Änderungen in Version 5.28.1
    perl5280delta       Perl-Änderungen in Version 5.28.0
    perl5263delta       Perl-Änderungen in Version 5.26.3
    perl5262delta       Perl-Änderungen in Version 5.26.2
    perl5261delta       Perl-Änderungen in Version 5.26.1
    perl5260delta       Perl-Änderungen in Version 5.26.0
    perl5244delta       Perl-Änderungen in Version 5.24.4
    perl5243delta       Perl-Änderungen in Version 5.24.3
    perl5242delta       Perl-Änderungen in Version 5.24.2
    perl5241delta       Perl-Änderungen in Version 5.24.1
    perl5240delta       Perl-Änderungen in Version 5.24.0
    perl5224delta       Perl-Änderungen in Version 5.22.4
    perl5223delta       Perl-Änderungen in Version 5.22.3
    perl5222delta       Perl-Änderungen in Version 5.22.2
    perl5221delta       Perl-Änderungen in Version 5.22.1
    perl5220delta       Perl-Änderungen in Version 5.22.0
    perl5203delta       Perl-Änderungen in Version 5.20.3
    perl5202delta       Perl-Änderungen in Version 5.20.2
    perl5201delta       Perl-Änderungen in Version 5.20.1
    perl5200delta       Perl-Änderungen in Version 5.20.0
    perl5184delta       Perl-Änderungen in Version 5.18.4
    perl5182delta       Perl-Änderungen in Version 5.18.2
    perl5181delta       Perl-Änderungen in Version 5.18.1
    perl5180delta       Perl-Änderungen in Version 5.18.0
    perl5163delta       Perl-Änderungen in Version 5.16.3
    perl5162delta       Perl-Änderungen in Version 5.16.2
    perl5161delta       Perl-Änderungen in Version 5.16.1
    perl5160delta       Perl-Änderungen in Version 5.16.0
    perl5144delta       Perl-Änderungen in Version 5.14.4
    perl5143delta       Perl-Änderungen in Version 5.14.3
    perl5142delta       Perl-Änderungen in Version 5.14.2
    perl5141delta       Perl-Änderungen in Version 5.14.1
    perl5140delta       Perl-Änderungen in Version 5.14.0
    perl5125delta       Perl-Änderungen in Version 5.12.5
    perl5124delta       Perl-Änderungen in Version 5.12.4
    perl5123delta       Perl-Änderungen in Version 5.12.3
    perl5122delta       Perl-Änderungen in Version 5.12.2
    perl5121delta       Perl-Änderungen in Version 5.12.1
    perl5120delta       Perl-Änderungen in Version 5.12.0
    perl5101delta       Perl-Änderungen in Version 5.10.1
    perl5100delta       Perl-Änderungen in Version 5.10.0
    perl589delta        Perl-Änderungen in Version 5.8.9
    perl588delta        Perl-Änderungen in Version 5.8.8
    perl587delta        Perl-Änderungen in Version 5.8.7
    perl586delta        Perl-Änderungen in Version 5.8.6
    perl585delta        Perl-Änderungen in Version 5.8.5
    perl584delta        Perl-Änderungen in Version 5.8.4
    perl583delta        Perl-Änderungen in Version 5.8.3
    perl582delta        Perl-Änderungen in version 5.8.2
    perl581delta        Perl-Änderungen in Version 5.8.1
    perl58delta         Perl-Änderungen in Version 5.8.0
    perl561delta        Perl-Änderungen in Version 5.6.1
    perl56delta         Perl-Änderungen in Version 5.6
    perl5005delta       Perl-Änderungen in Version 5.005
    perl5004delta       Perl-Änderungen in Version 5.004

Verschiedenes

    perlbook            Perl-Buch-Informationen
    perlcommunity       Perl-Gemeinschafts-Informationen
    perldoc             Perl-Dokumentation im Pod-Format nachschlagen
    perlexperiment      Eine Liste von experimentellen Funktionalitäten in Perl
    perlartistic        Perl Artistic Lizenz
    perlgpl             GNU General Public Lizenz

Sprach-Spezifika

    perlcn              Perl für vereinfachtes Chinesisch (in UTF-8)
    perljp              Perl für Japanisch (in EUC-JP)
    perlko              Perl für Koreanisch (in EUC-KR)
    perltw              Perl für traditionelles Chinesisch (in Big5)

Plattform-Spezifika

    perlaix             Perl-Hinweise für AIX
    perlamiga           Perl-Hinweise für AmigaOS
    perlandroid         Perl-Hinweise für Android
    perlbs2000          Perl-Hinweise für POSIX-BC BS2000
    perlcygwin          Perl-Hinweise für Cygwin
    perlfreebsd         Perl-Hinweise für FreeBSD
    perlhaiku           Perl-Hinweise für Haiku
    perlhpux            Perl-Hinweise für HP-UX
    perlhurd            Perl-Hinweise für Hurd
    perlirix            Perl-Hinweise für Irix
    perllinux           Perl-Hinweise für Linux
    perlmacosx          Perl-Hinweise für Mac OS X
    perlopenbsd         Perl-Hinweise für OpenBSD
    perlos2             Perl-Hinweise für OS/2
    perlos390           Perl-Hinweise für OS/390
    perlos400           Perl-Hinweise für OS/400
    perlplan9           Perl-Hinweise für Plan 9
    perlqnx             Perl-Hinweise für QNX
    perlriscos          Perl-Hinweise für RISC OS
    perlsolaris         Perl-Hinweise für Solaris
    perlsynology        Perl-Hinweise für Synology
    perltru64           Perl-Hinweise für Tru64
    perlvms             Perl-Hinweise für VMS
    perlvos             Perl-Hinweise für Stratus VOS
    perlwin32           Perl-Hinweise für Windows

Stümpfe für gelöschte Dokumente

    perlboot
    perlbot
    perlrepository
    perltodo
    perltooc
    perltoot

Auf Debian-Systemen müssen Sie das Paket perl-doc installieren, das den Großteil der Standard-Perl-Dokumentation und das Programm perldoc(1) enthält.

Es ist eine ausführliche zusätzliche Dokumentation für Perl-Module verfügbar, sowohl von denen mit Perl vertriebenen als auch von denen Dritter, die paketiert oder lokal installiert sind.

Sie sollten die Perl-Dokumentation mit Ihrem Programm man(1) oder perldoc(1) betrachten können.

Ein Teil der Dokumentation ist nicht als Handbuchseite verfügbar. Falls daher eine Kreuzreferenz von man(1) nicht gefunden wird, versuchen Sie es mit perldoc(1). Perldoc kann Sie auch direkt zur Dokumentationen für Funktionen bringen (mit dem Schalter -f). Siehe »perldoc --help« (oder »perldoc perldoc« oder »man perldoc«) für weiter hilfreiche Optionen im Angebot.

Im Allgemeinen gilt: Wenn etwas merkwürdiges mit Ihrem Programm schief gelaufen ist und Sie nicht wissen, wo Sie nach Hilfe suchen sollen, dann sollten Sie Ihren Code so anpassen, dass er use strict und use warnings erfüllt. Diese weisen oft darauf hin, wo genau das Problem liegt.

BESCHREIBUNG

Perl steht offiziell für »Practical Extraction and Report Language« (Praktische Auslese- und Berichtssprache), außer wenn das nicht der Fall ist.

Perl war ursprüngliche eine Sprache, die zum Durchsuchen beliebiger Textdateien, Auslesen von Informationen aus diesen Textdateien und zum Ausgeben von Berichten basierend auf diesen Informationen optimiert wurde. Sie wurde schnell eine gute Sprache für viele Systemverwaltungsaufgaben. Im Laufe der Jahre wuchs Perl zu einer Allzweck-Programmiersprache heran. Sie wird breit für alles von schnellen »Einzeilern« bis zur vollausgewachsenen Anwendungsentwicklung verwandt.

Die Sprache ist für praktischen (leichte Verwendung, effizient, komplett) statt schönen Einsatz (klein, elegant, minimal) gedacht. Sie kombiniert (zumindest in der Meinung des Autors) einige der besten Funktionalitäten von sed(1), awk(1) und sh(1), wodurch sie für UNIX-Benutzer vertraut und einfach verwandt werden kann, um schnell eine Lösung für nervende Probleme zusammenzustellen. Ihre Allzweck-Programmier-Einrichtungen unterstützen prozedurale, funktionale und objektorientierte Programmier-Paradigmen, wodurch Perl eine bequeme Sprache für den größten Teil der wichtigsten Projekte wird, wie auch immer Sie es drehen.

Perls Wurzeln in der Textverarbeitung wurden im Lauf der Jahre nicht vergessen. Sie rühmt sich immer noch mit den leistungsfähigsten regulären Ausdrücken und ihre Unterstützung für Unicode-Text ist Weltspitze. Sie handhabt auch sämtliche Arten von strukturiertem Text mittels einer umfangreichen Sammlung an Erweiterungen. Diese Bibliotheken, gesammelt im CPAN, stellen einsatzbereite Lösungen für eine verblüffende Anzahl an Problemen bereit. Wenn sie nicht selbst den Standard gesetzt haben, dann klauen sie von den Besten -- genau wie Perl selbst.

VERFÜGBARKEIT

Perl ist für die meisten Betriebssysteme verfügbar, einschließlich praktisch aller Unix-artigen Plattformen. Siehe »Supported Platforms« in perlport(1) für eine Auflistung.

UMGEBUNGSVARIABLEN

Siehe »ENVIRONMENT« in perlrun(1).

AUTOR

Larry Wall <larry@wall.org> mit der Hilfe von einer Unmenge anderer Leute.

Falls Ihre Perl-Erfolgsgeschichten und Erfahrungsberichte anderen, die den Einsatz von Perl in ihren Anwendungen bewerben möchten, helfen könnten oder Sie einfach Ihre Dankbarkeit an Larry und die Perl-Entwickler ausdrücken möchten, schreiben Sie bitte auf Englisch an perl-thanks@perl.org.

DATEIEN

 "@INC"                 Ort der Perl-Bibliotheken

Vorstehendes »@INC« ist eine Referenz an die eingebaute Variable mit dem gleichen Namen; siehe perlvar(1) für weitere Informationen.

SIEHE AUCH

<https://www.perl.org/>
Die Homepage von Perl
<https://www.perl.com/>
Perl-Artikel
<https://www.cpan.org/>
das Umfassende Perl-Archiv
<https://www.pm.org/>
die Perl-Händler

DIAGNOSE

Die Verwendung des Pragmas »use strict« stellt sicher, dass alle Variablen vernünftig deklariert sind und verhindert andere Missbräuche veralteter Perl-Funktionalitäten. Diese sind innerhalb des Geltungsbereichs von »use v5.12« (oder höher) standardmäßig aktiviert.

Das Pragma »use warnings« erstellt liebenswerte Diagnosen. Es wird standardmäßig aktiviert, wenn Sie »use v5.35« (oder höher) angeben. Sie können auch den Schalter -w verwenden, aber sein Einsatz wird normalerweise missbilligt, da er auf sämtlichen ausgeführten Perl-Code angewandt wird, einschließlich dem Teil, der nicht Ihrer Kontrolle unterliegt.

Siehe perldiag(1) für Erklärungen sämtlicher Perl-Diagnosen. Das Pragma »use diagnostics« schaltet automatisch die knappen Warnungen und Fehler in diese längeren Formen.

Kompilierungsfehler teilen Ihnen die Zeilennummer des Fehlers unter der Angabe, welches nächste Token oder welcher nächste Token-Typ untersucht werden soll, mit. (In einem an Perl mittels des Schalters -e übergebenen Skript zählt jedes -e als eine Zeile.)

Setuid-Skripte unterliegen zusätzlichen Beschränkungen, die Fehlermeldungen wie »Insecure dependency« ausgeben können. Siehe perlsec(1).

Haben wir erwähnt, dass Sie die Verwendung des Pragmas use warnings in Betracht ziehen sollen?

FEHLER

Das vom Pragma use warnings implizierte Verhalten ist nicht verpflichtend.

Perl ist den Definitionen Ihrer Maschine für verschiedene Operationen wie Typ-Bestimmung, atof(3) und der Ausgabe von Fließkommazahlen mit sprintf(3) ausgeliefert.

Falls Ihr Stdio ein Seek oder EOF zwischen Lese- und Schreibaktionen bei einem bestimmten Datenstrom benötigt, trifft dies auch auf Perl zu. (Dies trifft nicht auf sysread() und syswrite() zu.)

Obwohl keine der eingebauten Datentypen irgendeiner willkürlichen Größenbeschränkung unterliegt (abgesehen von der Speichergröße), gibt es dennoch ein paar willkürliche Beschränkungen: ein bestimmter Variablenname darf nicht länger als 251 Zeichen sein. Zur Diagnose angezeigte Zeilennummern werden intern als kurze Ganzzahlen gespeichert, daher sind sie auf ein Maximum von 65535 beschränkt (höhere Nummern unterliegen normalerweise einem Überlauf und fangen wieder von vorne an).

Sie können Ihre Fehlerberichte auf Englisch unter <https://github.com/Perl/perl5/issues> einreichen. Denken Sie daran, die vollständigen Konfigurationsinformationen als Ausgabe des Programms »myconfig« im Perl-Quellbaum oder mittels »perl -V« beizufügen.

Perl steht eigentlich für »Pathologically Eclectic Rubbish Lister« (Pathologischer, wählerischer Müllauflister). Verraten Sie aber nicht, dass ich Ihnen das gesagt habe.

ANMERKUNGEN

Das Perl-Motto lautet »Es gibt mehr als einen Weg, es zu erledigen.« Weiszusagen, wie viele noch übergeblieben sind, ist eine Hausaufgabe für den Leser.

Die drei Haupttugenden eines Programmierers sind Faulheit, Ungeduld und Überheblichkeit. Lesen Sie das Kamelbuch für die Begründung.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

12. April 2025 perl v5.40.1