Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenMontag, 23. September 2019 

Perl


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Dieser Artikel beschäftigt sich mit der Skriptsprache Perl . Den Artikel zu der Gemeinde Perl Saarland finden Sie unter Perl (Saarland) . - Programmiersprachen mit ähnlichem Namen: Pearl

Inhaltsverzeichnis
1 Datenstrukturen
2 Kontrollstrukturen
3 Beispiel
4 Versionen
5 Literatur
6 Konferenzen
7 Weblinks

Einleitung

Perl ( Practical Extraction and Report Language ) ist eine Programmiersprache (genauer: Skriptsprache ) für die Erstellung von Computerprogrammen . Die damit geschriebenen Programme sind ihrer Unübersichtlichkeit halber manchmal scherzhaft als WOPs write-only programs bezeichnet worden. Wie in jeder Programmiersprache die Lesbarkeit aber vor allem von Stil und Erfahrung des Programmierers ab.

Perl wurde von Larry Wall entworfen der es 1993 der Allgemeinheit frei zu Verfügung stellte. Benutzer kann dabei zwischen der Artistic Licence oder der GPL wählen. Heute wird Perl von vielen gemeinsam im Internet als Freie Software weiterentwickelt. Larry Wall bestimmt aber auch noch maßgeblich die Entwicklung mit.

Die erste Version wurde 1987 publiziert. Perls Entwurf bezog bewußt praktische anderer Programmiersprachen wie C awk sed und sogar Lisp ein bzw. entwickelte sie weiter. Programmierer Sprachen finden so besonders leichten Zugang. Insgesamt Perls Lernkurve nach Überwindung einer ersten Hürde Man kommt also sehr schnell zu Erfolgserlebnissen.

Von Anfang an war Perl besonders die Verarbeitung von Texten und Textdateien sowie Ausgabe von Berichten ausgelegt. Durch zahlreiche Erweiterungen zusätzliche Bibliotheken hat es sich jedoch längst einer auch universell einsetzbaren Sprache weiterentwickelt. Systemadministratoren und Webentwickler (siehe CGI ) setzen sie besonders gern ein ein ist das Data-Munging aber auch auf vielen Gebieten ist sie zu Hause - ausgenommen eigentlich nur Bereiche in denen Skriptsprachen aus Geschwindigkeitsgründen prinzipbedingt ungeeignet sind.

Perl wurde für den praktischen Einsatz und konzentriert sich daher auf einfache Programmierbarkeit und Effizienz. Ein gern zitiertes Motto besagt leichte Dinge einfach und komplexe Dinge möglich sollen.

Neben einer unkomplizierten Verwendung von Variablen ...) zeichnet sich Perl u.a. auch durch sehr ausgefeilten Mechanismus zur Textmustererkennung die regulären Ausdrücke aus der z.B. eine sehr effektive von Filtern oder Reports gestattet. Mit Version wurde es um die Möglichkeit objektorientierter Programmierung die sich gut in das Konzept der einpasst.

Kenner schätzen an Perl neben den erwähnten Eigenschaften seine enorme Flexibilität. Typischerweise gibt sehr viele mögliche Lösungsansätze für ein Problem dass jeder die ihm angenehmste Variante finden verwenden kann. Hier wie auch an anderen merkt man dem Design die Anlehnung an Sprachen mit ihren reichen Formulierungsmöglichkeiten an.

Kritiker misinterpretieren diese Flexibilität oft so Perl dazu einlade sehr unübersichtlichen Code zu und gehen sogar so weit zu sagen sei die einzige Sprache in der man programmieren könne. Tatsächlich bietet Perl nicht mehr weniger Möglichkeiten unleserlichen Code zu produzieren als Sprachen auch; Les- und Wartbarkeit eines Programms in praktisch allen verbreiteten Sprachen vor allem Willen und Können seines Autors ab.

Perl wurde ursprünglich unter Unix entwickelt ist jedoch inzwischen für die Betriebssysteme verfügbar.

Als Maskottchen von Perl dient ein Dromedar . Es zierte erstmals den Umschlag des 'Programming Perl' das im O'Reilly Verlag herausgegeben und als das Kamel-Buch bekannt ist. In einem Interview sagte O'Reilly scherzhaft als Begründung: "Perl ist hässlich kommt über lange Strecken ohne Wasser aus."

Datenstrukturen

Basisdatentypen in Perl sind skalare Variablen und Hashes ( assoziative Arrays ). (Assoziative Arrays werden in Smalltalk Dictionary genannt und in Java HashMap erfunden wurden sie von Aho Weinberger Kernighan im Rahmen von awk).

In einer skalaren Variable können Strings oder Referenzen auf andere Daten gespeichert sein. gilt für alle Elemente der Array- und Referenzen als Spezialfälle skalarer Variablen erlauben so Konstruktion beliebig komplexer Datenstrukturen. Auch Objekte werden über Referenzen verwaltet.

Charakteristisch für Perl ist dass Datentypen ein Prefix angezeigt werden beispielsweise werden

 $ für Skalare ($scalar) @ für (@array) % für Hashes (%hash) & für (&function)  

verwendet.

Während Arrays natürliche Zahlen als Index (die Zählung beginnt standardmäßig mit 0) werden über einen alphanumerischen Schlüssel ("Key") angesprochen. Hashes Arrays lassen sich aneinander zuweisen.

Kontrollstrukturen

Die grundlegenden Kontrollstrukturen unterscheiden sich kaum denen in C Java und JavaScript :

If:

 if (<condition>) { <statements> } [ (<condition>) { <statements> } ]* [ else <statements> } ]  

While-Schleife:

 while (<condition>) { <statements> }  

Do ... while:

 do { <statements> } while (<condition>); 

For-Schleife:

 for ([<start expression>]; [<condition>]; [<update statement>]) <statements> }  

Foreach-Schleife:

 foreach [ [my] $element] (<list>) { }  

Interessant sind nachgestellte Kontrollstrukturen die es erlauben die wesentliche Funktion Codefragments durch Voranstellen herauszuarbeiten und die (englischsprachigen) das Verständnis durch natürlichsprachige Formulierungen erleichtern:

 doSomething() if $condition;  

 doNothing() unless $condition;  

 loop() for @list;  

 print while <>;  

Beispiel

Perl wird häufig für so genannte verwendet. Diese lesen Zeile für Zeile von Standard-Eingabe-Datei bearbeiten sie und schreiben das Ergebnis die Standard-Ausgabe-Datei.

Ein erster Entwurf könnte beispielsweise so

 while ($line = <STDIN>) { # hier den Inhalt der Variable $line ... 

 # ... und gib das Ergebnis print $line; }  

Weil diese Art Aufgabe in Perl vorkommt gibt es dafür eine Abkürzung - typische Idiom arbeitet implizit mit der Variablen

 while (<>) { # gelesene Zeile in $_ ...  

 # ... und kann beispielsweise ausgegeben print; }  

Anderes Beispiel: Einlesen einer Datei in Array von Zeilen

 @meinArray = <STDIN>;  

Noch ein Beispiel: Zählen von Wörtern nach Häufigkeit (seltenste zuerst) ausgeben

ausführliche Version:

 while ($zeile = <ARGV>) { @worte split /\s+/ $zeile; foreach $wort (@worte) { } } foreach $wort (reverse sort {$haeufigkeit{$a} $haeufigkeit{$b}} keys %haeufigkeit) { print "$wort: $haeufigkeit{$wort}\n";  

kurze Version:

 map {$_{$_}++} split while <>; print $_{$_}\n" for reverse sort {$_{$a} <=> $_{$b}} %_;  

Insbesondere die Möglichkeit Programme kurz zu wird von Perl- Hackern sehr geschätzt.

Versionen

Die aktuelle stabile Version von Perl v5.8.3 . Codefreeze für die nächste stabile Version war am 31.3.2004; sie soll in Kürze

Die aktuelle "developer version" ist v5.9.1 .

Die Perl Version die als Version erscheinen soll wird zur Zeit komplett neu Sie verfügt über eine eigene ebenfalls komplett entwickelte virtuelle Maschine namens Parrot . Um Perl 5 Code auch in zusammen mit Perl 6 verwenden zu können Arthur Bergman eine Implementierung von Perl 5 Parrot unter dem Codenamen Ponie .

Weitere Details zur Geschichte von Perl es unter http://history.cpan.org/ .

Perl sollte nicht mit der Programmiersprache Pearl verwechselt werden.

Literatur

  • Larry Wall u.a.: Programmieren in Perl O'Reilly
  • Randal L. Schwartz Tom Christiansen: Einführung in Perl O'Reilly
  • Damian Conway: Objektorientierte Programmierung mit Perl Manning
  • Team: Perl 6 Essentials

Konferenzen

The Perl Conference ist ein großes von O'Reilly ausgerichtetes auch teures Treffen in Amerika. YAPCs ( Yet Another Perl Conferences ) versuchen Entwickler in einem möglichst erschwinglichen lokal zusammenzuführen und haben inzwischen beispielsweise in Europa und Israel Tradition. Der Deutsche Perl-Workshop als Treffen für den deutschsprachigen Raum sich bereits vor den YAPCs mit ähnlichen und findet in Zusammenarbeit mit ihnen jährlich

Weblinks




Bücher zum Thema Perl

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Perl.html">Perl </a>