Perl
Perl = Practical Extraction and Report Language (von Larry Wall)
Die Abbildung zeigt die Broschüre
Gerd Pokorra: Perl 5 / Perl 6 - Eine Einführung - 3. veränderte Auflage (September 2009)
- Diese Broschüre erhalten Mitglieder der Universität Siegen in der Verkaufsstelle des ZIMT-Benutzerservices.
- Mitglieder anderer Hochschulen wenden sich bitte an ihre Verkaufsstelle für RRZN-Handbücher.
Zu dieser Broschüre gibt es folgende Ergänzungen:
- Tabelle mit Freigabedatum von Perl-Versionen
- form-Funktion nutzen
- Unicode
- Perl 5 unter dem Betriebssystem OpenVMS
- Installation von Perl 6 (allgemein)
- Installation von Parrot / Perl 6 unter Windows
- Das Assembler der virtuellen Maschine Parrot
- Installation von PostgreSQL
- Zugriff auf Microsoft Access Datenbanken
- Zusammenspiel des Apache-Servers und Perl
Perl ist eine Skript-Sprache. Perl-Programme sind also Skripte, die von einem Interpreter ausgeführt werden. Die Ausführung eines Programms mit einem Interpreter ist langsamer als die eines Programms, welches von einem Compiler erzeugt vorliegt. Der Compiler erstellt das Programm in einem Code, den der Computer direkt versteht. Trotzdem ist die Ausführung eines Perl-Programms nicht wesentlich langsamer als bei höheren Programmiersprachen. Dies wird dadurch erreicht, dass der Perl-Interpreter erst das Skript in eine temporäre Binärdatei (Maschinen-Code) übersetzt und dann ausführt.
Durch die mächtige Sprache und die Module für alle möglichen Bereiche lassen sich Aufgaben schnell durch kurze Skripte erledigen. Die Modularität von Perl hat zur schnellen Verbreitung beigetragen. Es gibt dadurch eine Vielzahl von Entwicklern, die ihre Software zur Verfügung stellen. Somit können Probleme hauptsächlich mit dem Verwenden von existierender Software gelöst werden. Es gibt praktisch nichts, was sich in Perl nicht schreiben ließe. Was in C oft lange Programmiertätigkeiten voraussetzt, lässt sich in Perl meist in kurzer Zeit und mit weniger Zeilen Code erledigen.
Perl wurde Ende der 80er Jahre von Larry Wall entwickelt. Larry Wall war für die Administration von UNIX-Systemen zuständig. In dieser Zeit bestand die meiste Arbeit der Systemadministration darin, Logdateien zu durchsuchen, Informationen zu extrahieren und Ergebnisse (für den Chef) aufzubereiten. Die Systemadministration erfolgte über serielle Leitungen. Es sollten daher möglichst wenig Daten über diese langsamen Leitungen fließen müssen. Larry Wall war mit den vorhandenen Werkzeugen wie awk1 nicht zufrieden und entwickelte eigene. Daraus entstand Perl. Perl diente also ursprünglich zur Bearbeitung von Textdateien mit dem Hintergrund, Berichte aus diesen Informationen zu erstellen. Perl steht daher für Practical Extraction und Report Language. Wie bei Abkürzungen üblich, werden spaßeshalber auch andere Akronyme bemüht, wie Pathologically Eclectic Rubbish Lister (krankhaft eklektischer Unsinn Lister).
Perl vereint respektive kombiniert Features von C, sed2, awk und sh3.
Ein Perl-Skript kann, ohne dass es übersetzt werden muss, auf sehr vielen Systemen laufen. Damit ein Perl-Skript auf allen Betriebssystemen gleichermaßen ohne Fehler läuft, darf es keine systemspezifische Funktionen enthalten.
Vorteile von Perl:
-
objektorientiert (Es kann aber auch nur prozedural programmiert werden.)
-
keine willkürlichen Limits
-
dynamische Datentypen (Datentypen werden nicht deklariert.)
-
modular (Es existieren zum Beispiel Modul für CGI, graphische Oberflächen, Datenbanken (SQL) und Netzwerk-Programmierung)
-
portabel (Es existieren Versionen für die meisten Betriebssysteme.)
-
interoperabel (Zum Beispiel Schnittstellen mit C und Java)
-
mächtige und leistungsfähige Ausdrücke
Nachteile von Perl:
-
langsamer als C-Programme
-
krypthisch anmutende Syntax für Anfänger (Novize, Perl-Rookie)
1 awk ist aus den Anfangsbuchstaben seiner Programmierer Aho, Weinberger und Kerninghan gebildet. Kerninghan ist einer der Entwickler von UNIX und vor allem der Programmiersprache C. awk ist ein programmgesteuertes Textbearbeitungssystem mit dem Fokus auf der Mustererkennung.
2 sed ist ein prozedurbetriebener (nicht interaktiver), zeilenorientierter Editor (stream editor).
3 Bourne Shell, Kommandooberfläche (Befehlsinterpreter) bei UNIX