WikiDer > Perl (Programmiersprache)
perl | ||||
| Paradigma | Multiparadigma | |||
| erschien | 1987 | |||
| Entworfen von | Larry Wall | |||
| Aktuelle Version | 5.32 (20. Juni 2020)[1] | |||
| Typensystem | Dynamisch | |||
| Beeinflusst von | AWK, C, Bourne-Schale, lispeln | |||
| Einfluss auf | Python, PHP, Windows PowerShell | |||
| Betriebssystem | Multiplattform | |||
| Lizenz | GNU General Public License, Künstlerische Lizenz | |||
| Dateierweiterungen | .pl, .pm | |||
| Webseite | (und) Projektseite | |||
| ||||
perl ist ein Programmiersprache entworfen von Larry Wall diese Eigenschaften von C und UNIX-Skriptsprachen wie Sch und awk in sich vereint. Der Name Perl ist keine gewöhnliche Abkürzung, sondern ein backronym, welches dafür steht Praktische Extraktions- und Berichtssprache.
Funktionen und Anwendungen
Perl eignet sich als Ersatz für traditionelles Unix-SchaleSkripte, die in sh (der Bourne-Shell) geschrieben sind und alle möglichen anderen Dienstprogramme aufrufen, wie z sed, tr, uniq, sortieren, ausdrücken und awk; Perl selbst hat die notwendigen Einrichtungen eingebaut. Darüber hinaus unterstützt Perl den Aufruf vieler Systemfunktionen (Systemaufrufe), die bisher das Schreiben eines C-Programms erforderten.
Perl vereint nicht nur die Fähigkeiten dieser Sprachen, sondern auch viele ihrer Ausdrucksmöglichkeiten (Syntax). Deshalb wird es auch das Schweizer Taschenmesser der Programmiersprachen (genannt das Schweizer Taschenmesser der Programmiersprachen).
Perl wird häufig für Aufgaben verwendet, die zuvor Shell-Skripte verwendet haben, hauptsächlich zur Automatisierung von Aufgaben in der Systemadministration; darüber hinaus wird es häufig zur Bearbeitung aller Arten von Dateien verwendet (natürliche Sprache, Konfigurationsdateien, XML- oder HTML-Dokumente, Rasterbilder, und so weiter). Es hat auch gut Bibliotheken für alle Arten von Aufgaben, wie z Datenbankzugriff und Client/Server-Kommunikation. Perl ist weit verbreitet in der Bioinformatik. In den 90er Jahren war es die am weitesten verbreitete Sprache für dynamische Webseiten. Danach ist es Perl . sehr ähnlich PHP werden dafür immer beliebter.
Perl ist ein Skriptsprache mit umfangreichen Optionen für Reguläre Ausdrücke und du kannst mit Perl objektorientierten, prozedural oder auch funktional programmiert werden.
Module: CPAN
Bis Version 4 wurde die Leistungsfähigkeit von Perl durch das Hinzufügen zusätzlicher vordefinierter Funktionen und die Erweiterung der Sprache selbst weiter ausgebaut. Mit Perl 5 entstanden CPAN, eine Sammlung, die über das Internet installiert werden kann Module die alle möglichen Funktionen bieten. Fortan konzentrierte sich die Hauptentwicklung auf das Schreiben von Modulen, und in der Sprache selbst wurde relativ wenig entwickelt. Damit CPAN richtig funktioniert, haben sich alle Arten von Konventionen für das Anbieten, Organisieren und Entwickeln solcher Module (unterstützt von dafür geschriebenen Perl-Modulen) herausgebildet, die zur Sicherung der Qualität beitragen; ist es auch Unit-Tests Standardverfahren. Das Prinzip von CPAN wurde von vielen anderen Sprachen übernommen – zum Beispiel hat PHP PHP Birne und PECL, und hat Python PyPI.
Dokumentation
Perl hat nicht nur Kommentare, sondern auch ein einfaches Auszeichnungssprache, POD, um strukturierte Kommentare zu schreiben, ähnlich wie z.B. Javadoc vor dem Java und XML-Dokumentation für C#. Dokumentencode; Standardtools können diese Dokumentation anzeigen und in andere Formate konvertieren, wie z MannSeiten von HTML-Unterlagen.
Lizenz
Perl ist gratis Software, veröffentlicht unter dem Künstlerische Lizenz und GPL. Perl läuft auf den meisten Betriebssysteme. auf den meisten UNIX-ähnliche Systeme, wie z Linux, Perl ist standardmäßig installiert. Es gibt auch Versionen für Fenster.
Beispiele
Perl ist gut geeignet, um Textdateien mit kurzen und prägnanten Befehlen zu manipulieren. Die folgenden zwei Beispiele zeigen Textdateien mit PerlEinzeiler angepasst.
Beispiel 1: Konvertieren Sie die Datei myfile vom UNIX- in das DOS-Format.
perl -i -pe 's///' meine Datei
Beispiel 2: Setze das Schnur "#!/usr/bin/perl" am Anfang jeder Datei mit der Erweiterung '.pl'.
perl -i -ple 'print q{#!/usr/bin/perl} if $. == 1; ARGV schließen, wenn eof' *.plBeispiel 3: Drucken Sie alle Zeilen des Eintrags, jedoch nur beim ersten Auftreten.
perl -ne 'Drucken, es sei denn $seen{$_} 'Datei mit-doppelten-auftretenden-ZeilenDies ist oft sinnvoll, um beispielsweise Doppelzeilen in Protokolldateien auszulassen.
(Das Unix-Dienstprogramm einzigartig tut dies nur bei sortierter Eingabe.)
Beispiel 4 zeigt die Verwendung des Moduls LWP (die World Wide Web Library für Perl) wird eine Webseite aufgerufen.
Beispiel 4: Rufen Sie die Hauptseite von nl.wikipedia.org auf.
benutzenstreng;benutzenWarnungen;benutzenLWP::UserAgent;meine$ua=LWP::UserAgent->Neu;#$ua->proxy("http", "http://ProxyIP:ProxyPort/");meine$antwort=$ua->erhalten('http://en.wikipedia.org/');# die Hauptseite abrufenwenn($antwort->ist_erfolg){meine$html=$antwort->Inhalt;drucken$html;# erzeugt die Hauptseite (in HTML)# Alternative:#&print_wußten Sie_($html); # siehe nächstes Beispiel}sonst{Das$antwort->Statuszeile;}Um nur die Leckerbissen aus dem Abschnitt "Wussten Sie schon..." auszugeben, muss ein # aus der Zeile &print_did you_know in den print $html; die Definition von print_did_you_that könnte dann so aussehen:
Beispiel 5:analysierenHTML aus dem Abschnitt "Wussten Sie schon...".
benutzenutf8;# aus Gründen der Übersichtlichkeit vorzugsweise ganz oben;benutzenBytes;# Diese beiden Anweisungen zeigen an, dass das Skript UTF-8 enthält, das ist das Zeichen ...benutzenHTML::TokeParser;unterprint_wusstest du schon{meine($html)=@_;meine$stream=HTML::TokeParser->Neu($html);meine$InListItem=0;meine$ListItemStr='';während(meine$token=$stream->bekomme Token){wenn($token->[0]eq'T'){# Textwenn($InListItem){$ListItemStr.=$token->[1];}}elsif($token->[0]eq'S'){# Starttagmeine($tagname,$attr)=@$token[1,2];wenn($tagnameeq'li'){$InListItem=1;}}elsif($token->[0]eq'E'){# End-Tagmeine$tagname=$token->[1];wenn($tagnameeq'li'){wenn($ListItemStr=~ /^(…|.{3})/){drucken$ListItemStr."";}$InListItem=0;$ListItemStr='';}}}}Beispiel 6: wie das vorherige, jedoch mit CPAN-Modul XML::LibXML:
benutzenutf8;#am besten ganz obenbenutzenBytes;# diese sind zum Abgleichen…benutzenXML::LibXML;unterprint_wusstest du schon{meine($html)=@_;meine$parser=Neuxml::LibXML;meine$root=$parser->parse_html_string($html)->getDocumentElement;drucken"$_"zumgrep{/^(…|.{3})/}Mappe{beitreten('',$_->Findwert('.//Text()'))}$root->Knoten finden('//li');}Kritik an Perl
Eine häufige Kritik an Perl ist, dass die Sprache unlesbaren Code fördern würde. Einerseits wegen der unorthodoxen und häufigen Verwendung von Sonderzeichen, andererseits wegen der syntaktischen Freiheit.
Symbolverwendung
Perl verwendet in großem Umfang nicht-alphanumerische Symbole mit vordefinierten Bedeutungen wie <>, $_ und $/ und die Sonderzeichen in regulären Ausdrücken. Auch Klammern und Klammern werden für viele verschiedene Dinge verwendet. Außerdem haben viele Operationen einen Standardoperator, der weggelassen werden kann. Diese Funktionen ermöglichen einen kompakten Code, erschweren jedoch die Lesbarkeit für diejenigen, die mit den Notationen nicht vertraut sind.
Syntaktische Freiheit
Eine weitere Eigenschaft von Perl ist, dass die Syntax sehr flexibel ist; Larry Wall hat dies zu einem gemeinsamen Motto gemacht: Es gibt mehr als einen Weg, dies zu tun.'
Ein Beispiel für vier Möglichkeiten, dasselbe zu schreiben:
wenn($var>4){Prozess($var);}Prozess($var)wenn$var>4;$var>4undProzess($var);Prozess($var)es sei denn!($var>4);Viele Programmierer argumentieren, dass dies das Lesen von Code erschwert, da Programmierer ihren eigenen Schreibstil entwickeln und sich an den Stil anderer gewöhnen müssen.
Der Grund für diese Freiheit liegt, wie erwähnt, darin, dass Perl versucht, das typische, kompakte Idiom anderer Skriptsprachen wie sed, awk und sh zu unterstützen.
Kompaktheit
Eine Sprache wie Perl ist als Skriptsprache konzipiert, bei der Kompaktheit ein wichtiger Vorteil ist. Dies gilt viel weniger für eine allgemeine Programmiersprache wie C oder Java, für die die Lesbarkeit wichtiger ist als die Kompaktheit. Perl erlaubt Ihnen, auf die gleiche Weise zu programmieren, aber vor allem, wenn etwas Temporäres schnell gemacht werden muss, sind die kompakteren Idiome praktisch.
Bei solchen Redewendungen passiert mehr pro Zeile, daher ist es kein Wunder, dass das Verstehen pro Zeile auch mehr Aufwand erfordert.
Perl lernen
Bücher
Larry Wall war von 1995 bis 2003 beim Verlag angestellt O'Reilly, der einige sehr beliebte Perl-Bücher veröffentlicht hat. Das Tier auf dem Cover von O'Reillys Büchern gibt dem Buch auch sofort einen Spitznamen, wie das Kamelbuch vor dem Programmieren mit Perl.
| Titel | Beschreibung | Spitzname |
|---|---|---|
| Perl lernen | Für Programmierer, die Perl lernen wollen | Lama |
| Mittelstufe Perl | Die Fortsetzung von Learning Perl | Alpaka |
| Perle beherrschen | Rezepte für alltägliche Probleme | Vikunja |
| Programmieren mit Perl | Dies ist kein Einsteigerbuch, sondern ein komplettes Nachschlagewerk | Kamel |
Andere aktuelle Bücher sind Moderne Perle und Anfang Perl.
Perldoc
Jede Perl-Installation verfügt über eine umfangreiche Dokumentation, die mit dem Befehl angefordert wird perldoc.
Beispielsweise wird die Dokumentation der reverse()-Funktion aufgerufen:
perldoc -f reverse
Eine Einführung mit:
perldoc perlintro
Und eine Übersicht aller installierten Dokumentationen mit:
perldoc perl
Treffen der Perl Mongers sind eine gute Möglichkeit, Erfahrungen mit Perl-Programmierern auszutauschen. Jedes Jahr wird eine mehrtägige Perl-Konferenz organisiert: YAPC.
Geschichte von Perl
Perl 1.0
Perl entstand als Berichtswerkzeug: ein Programm, das Informationen aus Textdateien extrahiert und in Berichtsform darstellt. Larry Wall veröffentlichte 1987 Version 1.0 in der Newsgroupcomp.sources.misc.
Perl 2 bis 4
Perl entwickelte sich schnell zu einer gängigen Skriptsprache für Unix-Systeme und kombinierte die Stärken von AWK und der Bourne-Shell für die Textbearbeitung. Dies war ein großer Fortschritt gegenüber Shell-Skripten, die für die einfachsten Funktionen den Aufruf aller möglichen externen Programme erfordern. Auch die meisten Systemaufrufe und Standardbibliothekeingebauten Funktionen, so dass Perl in Bezug auf die Ausdruckskraft mit C vergleichbar wurde: auch die Low-Level-Programmierung von z.B. Mehrfachverarbeitung und Prozesskommunikation über Steckdosen und Networking war nun möglich. Auch der Paket eine einfache Methode zur Namensteilung eingeführt, mit der separate Module erstellt werden können. Die Unterstützung für Datenstrukturen blieb begrenzt: Nur die Array, das assoziatives Array und globbing, ein Primitiv Referenz-Mechanismus.
Die Hauptanwendungen blieben Stapel Textbearbeitung und Skripte für Systemadministration.
Neue Veröffentlichungen kamen weiter bis 4.036 heraus.
Perl 5
Die wichtigsten Verbesserungen in Perl 5:
- Referenzen, mit denen beliebige verschachtelte Datenstrukturen erstellt werden können
- Variablen mit lexikalischer Geltungsbereich, und
- Module, Objekte und Klassen, was das Programmieren und Verwenden von wiederverwendbaren Softwarebibliotheken erheblich erleichtert.
Daraus entstand CPAN, das zentrale Repository für frei wiederverwendbare Perl-Bibliotheken. Die Sprache wurde nun nicht mehr um neue Funktionalitäten erweitert, sondern als CPAN-Modul zur Verfügung gestellt.
Perl wurde nun als "klebrige" Sprache sehr beliebt, um Systeme miteinander zu verbinden. Von der Entstehung der weltweites Netz bis Ende der 1990er Jahre war es die Hauptsprache für Web Applikationen. Später wurde PHP bekannter.
Im Jahr 2000 wurde die nächste Perl-Version, Version 6, auf den Markt gebracht. Dies macht unter anderem bessere (statische) tippen möglich. Ab Version 5 werden jährlich Wartungsreleases mit geringfügigen Verbesserungen veröffentlicht. In 5.10 wurden sogar einige Features aus Perl 6 hinzugefügt[2]; diese müssen explizit aktiviert werden, um die Abwärtskompatibilität nicht zu brechen.[3]
![]()
Perle 6
Die Entwicklung der Version 6 begann im Jahr 2000 und ist in vollem Gange. Der Liefertermin ist noch nicht bekannt, aber
- Perl 6 wird nicht abwärtskompatibel sind: Programme, die unter Version 5 geschrieben wurden, laufen nicht unter Version 6;
- Perl 6 hat eine hybrides Tippen: es wird möglich sein, statische und dynamische Typisierung zu verwenden;
- Perl 6 hat standardmäßig Funktionen formale Parameterübergabe;
- Perl 6 weiß Siegelinvarianz;
- Perl 6 hat ein robusteres Objektmodell;
- Perl 6 hat eine Erweiterung für die Reguläre Ausdrücke mit dem neuen Namen Grammatiken;
- Perl 6 weiß verkettete Vergleiche wie
if C(20) <= $temperatur <= C(25) { say "Raumtemperatur!" }; - Perl 6 weiß faule Bewertung;
- Perl 6 weiß Kreuzungen;
- Perl 6 hat lispeln-ähnliche Makros;
Anstelle eines Interpreters verwendet Perl 6 a virtuelle Maschine namens Papagei, die auch für andere Skriptsprachen wie PHP oder . geeignet ist Rubin.
Perl in Aktion
Beispiele für beliebte kostenlos Perl-Software:
- AWStats (Webstatistik)
- bugzilla (ein Bugtracker)
- Haushofmeister (Verwaltung der Mailingliste)
- MRTG (Netzwerk-Traffic-Grafiken)
- Spam-Attentäter (Spam Filter)
- WebGUI (Content-Management-System)
- webmin
- OTRS
Externe Links
- perl.org (Perls Website)
- perl.com (O'Reilly-Community-Site für Perl)
- ActivePerl (Perl für Windows)
- Erdbeer-Perl (Perl für Windows)
| Quellen, Anmerkungen und/oder Verweise |
| Programmiersprachen |
|---|
ABAP ·ABC ·ActionScript ·Ada ·algol ·APL ·Assemblersprachen ·AWK ·B ·BASIC ·BCPL ·C ·C ·C♯ ·sauber ·Schermaschine ·COBOL ·COMAL ·Curry ·d ·Eiffel ·Erlang ·F♯ ·her ·fortran ·gehen ·Haskell ·Symbol ·J ·Java ·Kotlin ·lispeln ·Logo ·lua ·m4 ·ML ·Modula-2 ·Oberon ·Objekt Pascal ·Ziel c ·Ocamli ·Unze ·Pascal ·perl ·PHP ·PL/I ·PL/SQL ·Prolog ·Prova ·Python ·Rexx ·Rollenspiel ·Rubin ·Frieden ·SAS ·Reichweite ·planen ·Selbst ·Simula ·Smalltalk ·Schnell ·TCL ·Typoskript ·vala ·Visual Basic |