Welche Möglichkeiten bietet die Programmiersprache Perl?
Die Programmiersprache Perl ist ein Entwurf des Linguisten Larry Wall, der Mitte der achtziger Jahre als Systemadministrator tätig war. Seine neue Programmiersprache sollte seiner Idee nach besonders für die Verarbeitung von Logdateien geeignet sein. Der Name der Sprache bezieht sich auf den biblischen Vergleich des Himmelreichs mit einer wertvollen Perle. Nachdem es schon eine andere Programmiersprache mit der Bezeichnung Pearl gab, wählte Larry Wall die Version des Wortes, die gerade im Deutschen besser verständlich ist. Larry Wall veröffentlichte die erste Version von Perl im Jahr 1987. Ein Jahr darauf kam eine Version mit regulären Ausdrücken dazu. Wieder ein Jahr später war Version 3 in der Lage, neben Textdateien auch binäre Daten zu verarbeiten und war für Netzwerkprogrammierung einsetzbar.
Die Version 4 ist im Wesentlichen gleich wie die vorige Version, steht aber unter zwei verschiedenen Lizenzen zur Verfügung. Mit der Version 5 kam im Jahr 1994 objektorientierte Programmierung hinzu. Ab dieser Version erfolgte auch die Erweiterung durch separate Module. Diese ist die Grundlage für das CPAN-Archiv, in dem Programmierer über 150.000 Module für alle
möglichen Aufgaben finden.Die Version 6 trägt die Bezeichnung Raku und ist eine neue Programmiersprache. Die Entwickler streben zwar eine Interoperabilität mit der Version 5 an, eine Kompatibilität ist allerdings nicht vorgesehen. Die Entwickler von Perl arbeiten seither an der Version 7, die auf Version 5 aufbaut.
Technische Eigenschaften von Perl
Larry Wall verwendete zuerst die Programmiersprache AWK für Zwecke der Systemadministration. AWK verfügt über Funktionen zur Suche und dem Ersatz von Zeichenketten und dazu über Befehle zur Steuerung des Ablaufs, Larry Wall empfand diese aber als ungenügend. Er wollte mit Perl Beschränkungen wie diejenigen der Länge von Zeichenketten überwinden. Perl war zuerst eine Kombination von Kontrollbefehlen aus der Programmiersprache C, dem Stream Editor SED und AWK. Damit waren Suche und Ersetzen von Zeichenketten und das automatische Erstellen von Textdateien einfacher und schneller möglich.
Larry Wall erweiterte die Programmiersprache Perl dann um Funktionen wie reguläre Ausdrücke. Diese stellen eine mathematische Methode dar, um Zeichenketten mit gewünschten Eigenschaften flexibel zu beschreiben.
Syntax
Die Syntax ist die Grammatik der Sprache. Unabhängig von der Bedeutung legt sie fest, welche Ausdrücke in der Sprache korrekt sind. Zur einfacheren Benützung wählte Larry Wall Bezeichnungen für Befehle, die er der englischen Umgangssprache entlehnte. Zum Beispiel ist es möglich, die Bedingung für eine Verzweigung nicht nur vor, sondern wie in natürlichen Sprachen auch nach dem Block der bedingt auszuführenden Befehle anzugeben. Es dient der Benutzerfreundlichkeit, dass die am häufigsten verwendeten Befehle auch die kürzesten Bezeichnungen zum Einsatz kommen. Diese Idee stammt direkt aus der Kodierungstheorie. In einem Perlskript ist es nicht notwendig, die verwendeten Variablen zu deklarieren. Die Formatierung des Programmtextes ist weitgehend frei. Der Programmierer muss keine Regeln zum Einrücken von Zeilen beachten und ein Befehl kann auch über eine Zeile hinausgehen.
Nutzung von Perl
Der Programmierer soll seine Programme möglichst einfach an seine Zwecke anpassen können. Die Grundidee von Larry Wall war, das es mehrere Möglichkeiten für die Programmierung einer Lösung gibt und dass seine Programmiersprache diese Vielfalt unterstützen soll. Insbesondere kann man verschiedene Programmierparadigmen verwenden. Perl erlaubt es, prozedural,
objektorientiert oder funktional zu programmieren. Diese Vielfalt schätzen viele Programmierer, sie hat aber auch problematische Aspekte. Es ist einfach möglich, sehr schwer nachvollziehbare Programmtexte zu schreiben. Es gibt sogar Wettbewerbe, in denen es um maximale Undurchsichtigkeit geht. Manche Informatiker sehen Perl als flexibelste Programmiersprache, die man schon um dieses Erlebnisses willen lernen sollte. Am anderen Ende des Spektrums wartet dann Lisp. Beide Sprachen sind also auch dann von Interesse, wenn man gar nicht die Absicht hat, sie zu verwenden.
Interpreter
Perl ist eine interpretierte Sprache mit einem in C geschriebenen Interpreter, allerdings mit Einschränkungen. Der Interpreter liest den Programmtext ein und wandelt ihn in einen Bytecode um. Der Prozessor führt dann diesen Bytecode aus. Das bedeutet, dass syntaktisch nicht korrekte Programme nicht ausgeführt werden. Auf der anderen Seite ist Perl aber wesentlich schneller als übliche interpretierte Sprachen. Um auch über Pearl die maximale Sicherheit zu gewährleisten, ist die Verwendung eines Datenraums sinnvoll.
Verwendung von Perl
Der Anlass zur Entwicklung und die erste Verwendung dieser Programmiersprache stammt aus dem Bereich der Systemadministration. Dann lag es nahe, die Sprache auch für dynamische Webseiten zu verwenden. Diese müssen schließlich Textdateien in HTML erzeugen, was der Verarbeitung von Logdateien ähnlich ist. Weitere Anwendungen umfassen andere Bereiche, in denen umfangreiche Datenströme verarbeitet werden müssen. Typische solche Gebiete sind Bioinformatik und Finanzdienstleister. Perl ist auch als Glue-Language bekannt. Es eignet sich als Klebeband, das Software in verschiedenen Sprachen zusammenhalten kann. Das ist auch deshalb einfach möglich, weil Perl auf vielen verschiedenen Plattformen verfügbar
ist. Weniger geeignet ist Perl für rechenintensive Anwendungen. Seine Eigenschaft als Glue bedeutet aber, dass der Programmierer solche Anwendungen in anderen Sprachen schreiben und dann einfach einbinden kann. Auch nicht sehr geeignet sind Verwendungszwecke, die hohe Ansprüche an die Korrektheit der Software stellen, denn viele möglichen Fehler fallen erst während der Laufzeit auf.
Verfügbarkeit
Perl steht unter einer weitgehend offenen Lizenz zur Verfügung. Das Standardwerk ist immer noch das Buch „Programming Perl“ von Larry Wall und Randall L. Schwartz. Zusätzlich zur Programmiersprache selbst kann der Programmierer auch auf das CPAN-Archiv zugreifen. Es stellt in gewisser Weise die Philosophie der Sprache dar. Nachdem es viele Möglichkeiten gibt, etwas umzusetzen, finden sich diese eben auch in großer Zahl in diesem Archiv für Module.