Suchen

Definition „Perl (Programmiersprache)“ Was ist Perl?

Autor / Redakteur: LineFeed / Stephan Augsten

Perl ist eine Skriptsprache, die polarisiert. Die Programmiersprache hat nämlich ihre Besonderheiten, die dem Fachmann die Arbeit erleichtern, dem Laien aber das Verständnis erschweren können.

Firma zum Thema

„There's more than one way to do it“, so ein wesentliches Motto der Skriptsprache Perl.
„There's more than one way to do it“, so ein wesentliches Motto der Skriptsprache Perl.
(© teguhjatipras - Fotolia)

Was ist Perl?

Perl ist eine interpretierte Skriptsprache, beziehungsweise seit dem Erscheinen von Perl 6 eine Familie von Skriptsprachen, wie sie für Unix und kompatible Systeme wie Linux typisch ist. Ihre besonderen Stärken liegen in ihrer Leistungsfähigkeit und Effizienz bei der Verarbeitung textartiger Daten.

Das ist zu einem wesentlichen Teil der ausgefeilten Unterstützung sogenannter „regulärer Ausdrücke“ zu verdanken, einem mathematischen Grundkonzept für die Beschreibung und Analyse von Systemen, die sich nach vorgegebenen Regeln aus festgelegten Alphabeten aufbauen, beispielsweise auch natürlichen Sprachen. Vom formalen Teil dieser Regel-Funktionen hat die Programmiersprache Python vieles übernommen.

Perl-Prinzipien

Ein Motto von Perl lautet „There's more than one way to do it“. Perl macht dem Programmierer vergleichsweise wenig Vorgaben, wie er ein Programm zu schreiben hat. Weiterhin lassen sich Perl-Skripte so nah an natürlicher Sprache schreiben, dass sogar Gedichte in Perl geschrieben werden, die gleichzeitig lauffähige Programme sind.

Häufig zu lesen sind Statements wie „open(FILE, 'myfile') or die „Can't open file 'myfile'„;“, womit eine Datei geöffnet und im Fehlerfall das Skript mit einer entsprechenden Meldung beendet wird. Neben dem If- kennt Perl beispielsweise auch ein Unless-Statement, sodass Sie statt „if not“ auch ein natürlicher klingendes „unless“ schreiben können.

Das Perl-Paradoxon

Perl unterstützt den Programmierer durch ein als Huffman-Kodierung bekanntes Prinzip, das die Länge von Bezeichnern mit der Häufigkeit ihrer Verwendung korreliert. Oft genutzte Schlüsselwörter sind in Perl typisch kürzer als seltener verwendete. Die zahlreichen Möglichkeiten in Perl, sehr kompakt und effizient zu programmieren, führen aber gerade auch dazu, dass die Sprache oft als unverständlich gefürchtet und als „Write-Only-Language“ bezeichnet wird.

Von der Unix-Skriptsprache zum Web-Standard

Eine große Verbreitung erreichte Perl mit den ersten dynamischen Webseiten, die über CGI-Skripte realisiert wurden. Im Unterschied zu neueren Formen der Dynamisierung von Webinhalten wie Javascript laufen CGI-Programme auf dem Webserver und nicht im Browser auf dem Endgerät des Nutzers.

Die in Perl kodierenden Web-Programmierer der CGI-Zeit waren daher eher dem Bereich der Systemadministration verbunden, die PHP-Programmierer der Anwendung und dem Web-Design. Die vergleichbare Popularität im ähnlichen Anwendungsbereich und eine typische Abneigung von PHP-Programmierern gegen die als kryptisch empfundene Sprache Perl spiegeln sich in der Interpretation des Kürzels PHP als „Perl Hater's Platform“ wider.

Perl-Anwendungen außerhalb des WWW

Mit dem Wechsel von CGI zu Browser-seitig generierten dynamischen Webinhalten ist auch die Bedeutung von Perl im Bereich der Web-Programmierung geschwunden. Als „Swiss Army Chainsaw“ („Schweizer Taschenkettensäge“) unter den Skriptsprachen spielt Perl bei der Systemadministration weiterhin eine wichtige Rolle. Mit der Vermeidung interner Limits und seiner Flexibilität beim Durchforsten großer Datenmengen ist Perl auch für Big Data zum Beispiel im Finanzwesen gut gerüstet.

Die Perl-Geschichte

Nach der ersten, von Larry Wall 1987 vorgestellten Version, entwickelte sich Perl bis 1993 rasch zu dem leistungsfähigen Werkzeug, als das es heute bekannt ist. Der Schritt von Perl 4 zum im Herbst 1994 veröffentlichten Perl 5 brachte vor allem einen völlig überarbeiteten Perl-Interpreter, aber auch wesentliche Neuerungen, wie die Unterstützung von Referenzen, Objekten und Perl-Modulen.

Seit Perl 5 ist somit eine objektorientierte Programmierung in Perl möglich. Es können als Parameter an Unterfunktionen übergebene Variablen aus dem Unterprogramm heraus manipuliert werden, außerdem lässt sich die Sprache über Module flexibel vom Anwender erweitern.

Perl 6: das neue Perl

Die Entwicklung von Perl 6 begann bereits im Jahr 2000, mündete aber erst 2015 in einem offiziellen Release. Die ältere Version wurde damit nicht ersetzt, sondern durch um zweite, völlig neu entwickelte Perl-Variante ergänzt. Perl 6 unterscheidet sich insbesondere in einigen viel diskutierten, historisch bedingten Unschönheiten von Perl 5, die dort ohne einen schwerwiegenden Bruch der Kompatibilität nicht zu beseitigen sind.

Funktionserweiterung durch Perl-Module

Einen wesentlichen Einfluss auf die Leistungsfähigkeit der Programmiersprache Perl haben die Module, die online über das CPAN-Archiv abrufbar sind. Hier stehen über 150.000 Perl-Module bereit, um die täglichen Aufgaben von Software-Entwicklern zu lösen.

Perl-Besonderheiten

Eine der charakteristischen Eigenheiten von Perl ist die sichtbare Unterscheidung zwischen einfachen, skalaren Variablen und zwei verschiedenen zusammengesetzten Datentypen, die ganzzahligen Werten respektive mit Zeichenketten indiziert sind. In Perl ist das entsprechende Zeichen am Anfang von Variablennamen („$“, „@“ oder „%“), Sigil genannt, in jedem Fall anzugeben und es kennzeichnet, wie die Variable interpretiert werden soll, nicht wie sie definiert ist.

Man kann also beispielsweise eine Liste in einer Variablen „@array“ speichern und mit „$array“ auf das erste Element daraus zugreifen; oder man speichert ein assoziatives Array unter dem Namen „%dict“ und holen sich eine Liste der Elemente über den Bezeichner „@dict“. Auch hiermit erleichtert Perl die Programmierung häufig verwendeter Konstrukte, setzt sich aber ebenfalls der Kritik aus, schlecht lesbare Programme zu liefern.

Neben den üblichen Print-Statements bietet Perl mit Write-Formaten einen einfach nutzbaren Mechanismus für formatierte Ausgaben. Diese erweist sich speziell bei der Reportgenerierung als nützlich, einem der bevorzugten Anwendungsgebiete der Sprache.

(ID:44533086)