Zum Forum
Passwort vergessen?
Noch keinen Account?
lexikon
Hauptseite
Zufälliger Artikel
Diskussion
Diskussion : Perl
Links
Forum
Portale
Reisen
Versicherung
Inhaltsverzeichnis
Hauptmenü
Home
Editorial
Bildung
E-Learning
Fremdsprachen
Magazin
Wissen
Wörterbücher
Enzyklopädien
Expertendienste
Wissenswertes
Praktische Ratgeber
--------------------------
Biologie
Chemie
Computer
Film/ Theater
Geografie
Geschichte
Jura
Kunst
Literatur
Mathematik
Medizin
Musik
Philosophie
Physik/ Astronomie
Politik
Psychologie
Religionen
Sport
Umwelt
Wirtschaft
Reisen
Lexikon
Versicherung
Suchen
Schnellsuche
Suchmaschinen
Metasuchmaschinen
Webkataloge
News
Treffpunkt
Chat
Forum
Suche
Schnellsuche
Sitemap
Kontakt
Impressum
Perl
Stichpunkte
Allgemein
Dieser Artikel beschäftigt sich mit der Skriptsprache Perl
Den Artikel zu der Gemeinde Perl im Saarland finden Sie unter Perl (Saarland) und den Schriftgrad Perl (5 Punkt) findet man unter Schriftgrad – Programmiersprachen mit ähnlichem Namen: Pearl. Perl (sowohl als Practical Extraction and Report Language als auch als Pathologically Eclectic Rubbish Lister bezeichnet) ist eine Programmiersprache (genauer: Skriptsprache) zum Verfassen von Computerprogrammen
vor allem wegen Variablennamen wie $_
Die damit geschriebenen Programme sind von manchen als sehr unübersichtlich bezeichnet worden
$&
$# oder $~
"Verbergen") 1 Geschichte 2 Merkmale 3 Datenstrukturen 4 Kontrollstrukturen 4.1 If-Then-Else-Strukturen 4.2 Schleifen 4.3 Nachgestellte Kontrollstrukturen 5 Beispiele 6 Versionen 7 Spaß mit Perl 7.1 Wettbewerbe 7.2 Mottos und Zitate 7.3 Perligata 8 Literatur 9 Konferenzen und Workshops 10 Termine 11 Weblinks [Bearbeiten]
Wie in jeder Programmiersprache hängt die Lesbarkeit aber vor allem von Stil
Disziplin und Erfahrung des Programmierers ab. Inhaltsverzeichnis showTocToggle("Anzeigen"
Geschichte
der es am 18
Perl wurde von Larry Wall entworfen
Dezember 1987 erstmals publizierte und 1993 der Allgemeinheit frei zu Verfügung stellte
Der Benutzer kann dabei zwischen der Artistic License und der GPL wählen
Heute wird Perl von vielen Menschen gemeinsam im Internet als Freie Software weiterentwickelt
Larry Wall bestimmt aber auch heute noch maßgeblich die Entwicklung mit
sed und sogar LISP ein bzw. entwickelte sie weiter
awk
Perls Entwurf bezog bewusst praktische Konzepte anderer Programmiersprachen wie C
Programmierer dieser Sprachen finden so besonders leichten Zugang
Insgesamt kommt man mit Perl nach Überwindung einer ersten Hürde sehr schnell zu Erfolgserlebnissen
Perl wurde ursprünglich unter Unix entwickelt
ist jedoch inzwischen für die meisten Betriebssysteme verfügbar. [Bearbeiten]
Merkmale
Von Anfang an war Perl besonders auf die Verarbeitung von Texten und Textdateien sowie zur Ausgabe von Berichten ausgelegt
Durch zahlreiche Erweiterungen und zusätzliche Bibliotheken hat es sich jedoch längst zu einer auch universell einsetzbaren Sprache weiterentwickelt
Systemadministratoren und Webentwickler (siehe CGI) setzen sie besonders gern ein
in denen Skriptsprachen aus Geschwindigkeitsgründen prinzipbedingt ungeeignet sind
aber auch auf vielen anderen Gebieten ist Perl zu Hause – ausgenommen sind eigentlich nur Bereiche
Ein weiteres Hauptanwendungsfeld ist das Data-Munging
Vollständigkeit und Effizienz
Perl wurde für den praktischen Einsatz entwickelt und konzentriert sich daher auf einfache Programmierbarkeit
dass leichte Dinge einfach und komplexe Dinge möglich sein sollen
Ein gern zitiertes Motto besagt
der z. B. eine sehr effektive Programmierung von Filtern oder Reports gestattet
die regulären Ausdrücke aus
Neben einer unkomplizierten Verwendung von Variablen (keine Festlegung von Datentypen notwendig ...) zeichnet sich Perl u. a. auch durch einen sehr ausgefeilten Mechanismus zur Textmustererkennung
die sich gut in das Konzept der Sprache einpasst
Mit Version 5 wurde es um die Möglichkeit objektorientierter Programmierung erweitert
Kenner schätzen an Perl neben den schon erwähnten Eigenschaften seine enorme Flexibilität
Typischerweise gibt es sehr viele mögliche Lösungsansätze für ein Problem
so dass jeder die ihm angenehmste Variante finden und verwenden kann
Hier wie auch an anderen Stellen merkt man dem Design die Anlehnung an natürliche Sprachen mit ihren reichen Formulierungsmöglichkeiten an
so zum Beispiel der Befehl my zur Variablenlokalisation
Viele Anweisungen und Befehle in Perl sind der englischen Sprache entlehnt
Viele boolsche Operatoren lassen sich auch durch die englischen Begriffe ersetzen
so zum Beispiel „||“ durch „or“ und „&&“ durch „and“
denen sie entsprechen
Dies ermöglicht zum einen einen sehr fließenden Programmierstil und verursacht eine gute Lesbarkeit der Programme
kann aber falsch angewendet auch den gegenteiligen Effekt – nämlich schwer lesbaren Programmcode – verursachen
und gehen sogar so weit zu sagen
dass Perl dazu einlade
Perl sei die einzige Sprache
in der man „write-only“ programmieren könne
sehr unübersichtlichen Code zu produzieren
Kritiker missinterpretieren diese Flexibilität oft so
als andere Sprachen auch; Les- und Wartbarkeit eines Programms hängen in praktisch allen verbreiteten Sprachen vor allem vom Willen und Können seines Autors ab
Tatsächlich bietet Perl nicht mehr oder weniger Möglichkeiten
unleserlichen Code zu produzieren
besonders lesbaren Code zu schreiben
Allerdings ermöglicht es Perl (scheinbar paradoxerweise) aufgrund seiner Flexibilität auch
Als Maskottchen von Perl dient ein Dromedar
Es zierte erstmals den Umschlag des Referenzwerkes Programming Perl
welches im O'Reilly Verlag herausgegeben wird und als das Kamel-Buch bekannt ist
In einem Interview sagte Tim O'Reilly scherzhaft als Begründung: Perl ist hässlich und kommt über lange Strecken ohne Wasser aus. [Bearbeiten]
Datenstrukturen
Arrays und Hashes (assoziative Arrays)
Basisdatentypen in Perl sind skalare Variablen
Zahlenwerte oder Referenzen auf andere Daten gespeichert sein
In einer skalaren Variable können Strings
Dasselbe gilt für alle Elemente der Array- und Hash-Datenstrukturen
Referenzen als Spezialfälle skalarer Variablen erlauben so die Konstruktion beliebig komplexer Datenstrukturen
Auch Objekte werden über Referenzen verwaltet
Charakteristisch für Perl ist
werden Hash-Einträge über einen alphanumerischen Schlüssel („Key“) angesprochen
dass Datentypen durch ein Prefix (oder auch Sigil genannt) angezeigt werden
hier einige Beispiele. $ für Skalare: ($scalar) @ für Arrays (@array) % für Hashes/assoziative Arrays (%hash) & für Funktionen (&function) * für Typeglobs (*alles) Während Arrays natürliche Zahlen als Index verwenden (die Zählung beginnt standardmäßig mit 0)
Hashes und Arrays lassen sich einander zuweisen. [Bearbeiten]
Kontrollstrukturen
Die grundlegenden Kontrollstrukturen unterscheiden sich kaum von denen in C
Java und JavaScript: [Bearbeiten]
If-Then-Else-Strukturen
if (<condition>) { <statements> } elsif (<condition>) { <statements> } else { <statements> } Negierte If-Then-Struktur: unless (<condition>) { <statements> } [Bearbeiten]
Schleifen
While-Schleife: while (<condition>) { <statements> } Do-While-Schleife: do { <statements> } while (<condition>); For-Schleife: for ([<start expression>]; [<condition>]; [<update statement>]) { <statements> } Foreach-Schleife
diese durchläuft Listen. $element ist eine Referenz auf das jeweilige Element: foreach [ [my] $element] (<list>) { <statements> } [Bearbeiten]
Nachgestellte Kontrollstrukturen
und die den (englischsprachigen) Lesern das Verständnis durch natürlichsprachige Formulierungen erleichtern: doSomething() if $Bedingung; # Normal: if ($Bedingung) {doSomething();} doSomething() unless $Bedingung; # Normal: unless ($Bedingung) {doSomething();} loop() for @list; # Normal: foreach @list {loop();} print while <STDIN>; # Normal: while(<STDIN>) {print;} [Bearbeiten]
Eine interessante Option in Perl sind nachgestellte Kontrollstrukturen
die es erlauben
die wesentliche Funktion eines Codefragments durch Voranstellen herauszuarbeiten
Beispiele
Perl wird häufig für so genannte Filterprogramme verwendet
Diese lesen Zeile für Zeile von der Standard-Eingabe-Datei
bearbeiten sie und schreiben das Ergebnis auf die Standard-Ausgabe-Datei
gibt es dafür eine Abkürzung – das typische Idiom arbeitet implizit mit der Variablen $_
Ein erster Entwurf könnte beispielsweise so aussehen: while ($line = <STDIN>) { # bearbeite hier den Inhalt der Variable $line ... # ... und gib das Ergebnis aus print $line; } Weil diese Art Aufgabe in Perl häufig vorkommt
Hier ein Beispiel das alle eingelesenen Zeilen um einen <Tab> eingerückt ausgibt: while (<>) { # Die eingelesene Zeile steht in $_ # Wir schieben ein <Tab> vor die Zeile ... $_ = "t".$_; # .. und geben diese aus. print; } Anderes Beispiel: Einlesen einer Datei in ein Array von Zeilen
Dieses Beispiel ist aber speichertechnisch uneffizient
dass der Skalar $_ und der Hash %_
und sollte nur bei kleineren Dateien verwendet werden. @meinArray = <STDIN>; Noch ein Beispiel: Zählen von Wörtern und nach Häufigkeit (seltenste zuerst) ausgeben ausführliche Version: while ($zeile=<ARGV>) { @worte = split /s+/
$zeile; foreach $wort (@worte) {$haeufigkeit{$wort}++;} } 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}} keys %_; (Man beachte hierbei
unterschiedliche Variablen sind!) Diese vielen verschiedenen Lösungsansätze spiegeln ein von Perl-Programmierern gerne zitiertes Motto There's more than one way to do it (kurz: TMTOWTDI) wieder
auf dessen Elemente mit $_{schlüssel} zugegriffen wird
Programme kurz zu halten
wird von Perl-Hackern sehr geschätzt. [Bearbeiten]
Insbesondere die Möglichkeit
Versionen
erfahren aber nur noch minimale Erweiterungen
Ältere Versionen wie die noch sehr weit verbreitete 5.005 werden aktiv weiter gepflegt
Der Einsatz einer Version kleiner 5.00503 ist heute allerdings nicht mehr zu empfehlen
Das aktuelle Release der Version 5.8 ist 5.8.6
Weitere Releases dieser Version sollen zukünftig in regelmäßigen
verhältnismäßig kurzen Intervallen erscheinen
Das aktuelle Development Release der kommenden Version 5.10 ist 5.9.1
Version 6 wird zur Zeit komplett neu geschrieben
ebenfalls komplett neu entwickelte virtuelle Maschine namens Parrot
Sie verfügt über eine eigene
Mit der Fertigstellung von Perl 6 wird im dritten Quartal 2005 gerechnet
entwickelt Arthur Bergman eine Implementierung von Perl 5 auf Parrot unter dem Codenamen Ponie. [Bearbeiten]
Um Perl-5-Code auch in Zukunft zusammen mit Perl 6 verwenden zu können
Spaß mit Perl
Viele Spracheigenschaften von Perl laden dazu ein Programmcode humor- oder kunstvoll zu gestalten
teils skurrilen Wettbewerben und Aktionen um die Programmiersprache Perl geführt. [Bearbeiten]
Dies hat zu verschiedenen teils humorvollen
Wettbewerbe
ein Wettbewerb dessen Ziel es ist eine gestellte Aufgabe mit einem möglichst kurzem Programm zu lösen
so zum Beispiel das Perlgolf
Unter Perl-Programmierern haben sich einige Sportarten entwickelt
welche mittlerweile bei vielen Menschen Anklang gefunden haben
Eine andere Spielart ist zum Beispiel Poesie in Perl
Dabei geht es darum Gedichte zu schreiben die in Perl kompilierbar sind
Da Perl viele Elemente der englischen Sprache beinhaltet ist dies durchaus möglich
so erscheinen zum Beispiel regelmäßig neue Gedichte in der Perl Poetry (http://www.perlmonks.org/index.pl?node=Perl%20Poetry)-Kategorie des englischsprachigen Perl Monks-Forums. [Bearbeiten]
Mottos und Zitate
Es gibt viele bekannte Mottos und Zitate die sich mit Perl selbst oder den Möglichkeiten der Sprache beschäftigten
hier einige Kostproben. Perl: the Swiss Army Chainsaw of Programming Languages. There's more than one way to do it (Tim Toady) ... we often joke that a camel is a horse designed by a committee
the camel is pretty well adapted for life in the desert
but if you think about it
The camel has evolved to be relatively self-sufficient
the camel has not evolved to smell good
On the other hand
Neither has Perl. (Larry Wall über das Kamel als Perl Maskottchen) [Bearbeiten]
Perligata
Das Perl-Modul Lingua::Romana::Perligata ist wohl eines der skurrilsten Module schlechthin
und allemal eine Erwähnung wert
Perl komplett in Latein zu schreiben
Es ermöglicht dem Benutzer
Von Variablen bis Referenzen und mehrdimensionalen Arrays ist alles in dieser neuen Sprachdefinition vorhanden
Variablen gleicher Namen aber unterschiedlicher Struktur (Beispielsweise $next und @next) werden dekliniert
Nahezu alle Sonderzeichen wurden aus der Sprache entfernt
um die entsprechende Variable zu adressieren
2) = $insert; clavis hashus nominamentum da. # Entspricht: @keys = keys %hash; Dieses Perlmodul ist ein gutes Beispiel für den Zeitaufwand den viele Leute Perl widmen
Perl kann in diesem Sinne durchaus als Hobby durchgehen. [Bearbeiten]
1
Ein bisschen Beispielcode: insertum stringo unum tum duo excerpemento da. # Entspricht in Perl: substr($string
Literatur
Larry Wall u.a.: Programmieren in Perl
O'Reilly Verlag
ISBN 3897211440 Randal L
O'Reilly
Manning 2000
ISBN 059600737X [Bearbeiten]
Schwartz
O'Reilly 2004
ISBN 3827318122) Randall
Tötsch: Perl 6 & Parrot Essentials
ISBN 3897211475 Damian Conway: Object Oriented Perl
ISBN 1884777791 ((in schlechter Übersetzung) deutsch bei Addison-Wesley 2001: Objektorientiert Programmieren mit Perl
Tom Christiansen: Einführung in Perl
Sugalski
Konferenzen und Workshops
Entwickler in einem möglichst erschwinglichen Rahmen lokal zusammenzuführen und haben inzwischen beispielsweise in Amerika
The Perl Conference ist ein großes
allerdings auch teures Treffen in Amerika. YAPCs (Yet Another Perl Conferences) versuchen
von O'Reilly ausgerichtetes
Europa und Israel Tradition
Der Deutsche Perl-Workshop (http://www.perl-workshop.de/) als Treffen für den deutschsprachigen Raum etablierte sich bereits vor den YAPCs mit ähnlichen Zielen und findet in Zusammenarbeit mit ihnen jährlich statt
Inzwischen werden auch in vielen anderen Ländern Workshops organisiert. [Bearbeiten]
Termine
Der 8. deutsche Perl-Workshop (http://www.perl-workshop.de/2006/) findet vom Mittwoch
1
3
März 2006 (Aschermittwoch) bis Freitag
März 2006 in Bochum statt
Dieser ist an professionelle Perl-Entwickler gerichtet
welche bereits an größeren Perl-Projekten beteiligt waren. [Bearbeiten]
Weblinks
Bild nicht gefunden Auf Wikibooks gibt es ein Handbuch zum Thema Perl-Programmierung
sowie eine deutsche Übersetzung der Perl-Dokumentation. http://history.perl.org/PerlTimeline.html Timeline http://www.perl.com/ http://www.cpan.com/ CPAN - Perl Modul Archiv http://www.activestate.com/ Perl vorkompiliert für Windows und ein Cookbook-Archiv mit von Benutzern beigesteuerten Kochrezepten http://www.perldoc.com/ Die Online-Version der Perl-Dokumentation http://perl-seiten.privat.t-online.de/ Perl-Tutorial http://www.uni-essen.de/~hrz030/perl/ sehr kompakte Perl-Einführung mit vielen kurzen Beispielcodestücken http://learn.perl.org/library/beginning_perl/ Englisches Perl-Tutorial http://www.thomas-fahle.de/pub/perl/ Programmieren mit CPAN-Modulen http://pm.org - Perl Mongers - lokale Benutzergruppen http://www.perlunity.de - alles rund ums Thema Perl cs:Perl en:Perl eo:Perl Komputillingvo es:Perl et:Perl fi:Perl fr:Perl (langage) it:Perl ja:Perl lb:Perl lt:Perl nl:Perl pl:Perl pt:Perl ru: ( ) sv:Perl tr:Perl
[X] Schliessen
Dieser Artikel basiert auf dem Artikel
Perl
aus der freien Enzyklopädie
wikipedia
und steht unter der
GNU Lizenz für freie Dokumentation
. In der wikipedia ist eine
Liste der Autoren
verfügbar.
Prädikatenlogik
Piers Anthony
Pascal (Programmiersprache)
Pascal
Prolog (Programmiersprache)
Patente
Phonem
Plattentektonik
[ Zurück ]
Inhalt Lexikon:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
1
2
3
4
5
6
7
8
9
Chat
|
Lexikon
|
Reisen
|
Versicherung
|
Forum
|
Kontakt