Perl /freie, plattformunabhängige Programmiersprache und wird auch als Skriptsprache oder dynamic language bezeichnet. Der Linguist Larry Wall entwarf sie 1987 als Synthese aus C, den UNIX-Befehlen und anderen Einflüssen. Ursprünglich als Werkzeug zur System- und Netzwerkadministration vorgesehen, hat Perl auch bei der Entwicklung von Webanwendungen und in der Bioinformatik weite Verbreitung gefunden. Hauptziele sind eine schnelle Problemlösung und größtmögliche Freiheit für Programmierer. Der Umgang mit Texten und viele frei verfügbare Module sind Stärken der Sprache.
/ ist einePerl
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Larry Wall |
Erscheinungsjahr | 18. Dezember 1987[1] |
Aktuelle Version | 5.8.7 |
Aktuelle Vorabversion | 5.23.2[2][3] (20. August 2015) |
Betriebssystem | Windows, Linux, Mac OS X uvm. |
Programmiersprache | C[4] |
Kategorie | Skriptsprache |
Lizenz | Artistic License GPL |
www.perl.org |
Der Name Perl bezieht sich auf ein Zitat aus dem Matthäus-Evangelium [13,46], wo Jesus das Himmelreich mit dem Bild eines Händlers beschreibt, der seinen gesamten Besitz verkaufen will, um eine kostbare Perle zu erwerben. Später wurde der Name von Pearl in Perl geändert, da es bereits eine Sprache namens Pearl gab. Allgemein verbreitet und von Larry akzeptiert sind auch die Backronyme Practical Extraction and Report Language und Pathologically Eclectic Rubbish Lister. Die Schreibweise „Perl“ bezeichnet die Sprache, „perl“ dagegen das Programm, das diese Sprache interpretiert.
Geschichte
Entstehung
Larry Wall war Angestellter bei Unisys, wo er 1987 daran beteiligt war, unter dem Namen blackcomb ein verstreutes, sicheres Netzwerk für die NSA zu entwickeln. Er erhielt dabei mehrere Aufträge, Werkzeuge zur Fernwartung und Überwachung der entstehenden Software zu schaffen. Da die vorhanden Sprachen und Werkzeuge ihm dafür zu umständlich erschienen, entwickelte er eine eigene Sprache, um seine Aufgaben zu lösen.
Perl 1–4
Am 18. Dezember 1987 publizierte er sie im damaligen Vorläufer des Internets als Perl 1.0. Damals war Perl wirklich noch, wie der Name sagt, eine bessere Shell, die gut mit Texten und Dateien umgehen konnte, andere Programme steuern und gut lesbare Berichte ausgeben konnte. Bereits im nächsten Jahr erschien die Version 2.0 mit grunderneuerter und erweiterter Regex-Engine und einigen weiteren Verbesserungen. 1989 folgte Perl 3, das auch mit binären Daten umgehen konnte und erstmals auch unter der GPL veröffentlicht wurde. Fast unverändert war es ab dem 12. März 1991 als Perl 4 erhältlich. Jedoch nun wahlweise unter der GPL oder der von Larry entwickelten Artistic License.
Perl 5
Der bisher größte Schritt für Perl war am 18. Oktober 1994 mit Perl 5 geschafft. Neben der Möglichkeit, Dokumentation in den Quelltext einzufügen, und vielen weiteren wichtigen Neuerungen, konnte man nun die Sprache durch separate Module erweitern, was im folgendem Jahr zur Entstehung des CPAN führte. Dieses große Archiv frei erhältlicher Module ist heute selbst ein wichtiger Grund Perl einzusetzen. Mit Version 5 wurde es auch möglich, objektorientiert in Perl zu programmieren, wobei die objektoriente Syntax geschickt aus anderen Sprachelementen (Packages, Package-Funktionen und Package-Variablen) abgeleitet wurde. In der Anfangszeit von Perl 5 enstand aus einem Satz C-Makros mit XS eine Sprache, die es ermöglicht Perl mit anderen Sprachen zu erweitern oder mit Perl-Programmen beliebige Software anzusprechen.
Aktuelle Versionen
Die aktuelle Weiterentwicklung findet in den von Rafaël Garcia-Suarez geleiteten Entwicklerversionen 5.9.x statt. Für den täglichen Gebrauch werden derzeit die Versionsreihen 5.6.x und 5.8.x gepflegt. Die aktuelle, von Nicholas Clark betreute, Version 5.8.7 ist weitestgehend befreit von den Problemen mit Unicode und Threads, 5.6.2 ist Alternative wegen kleiner Inkompatibilitäten. 5.004 und 5.005 sind veraltet, wichtige Module funktionieren mit ihnen aber weiterhin. Die nächste Benutzerversion 5.10 wird von Hugo van der Sanden vorbereitet.
Perl 6
Am 18. Juli 2000 auf der TPC 4 wurde Perl 6 als die Version der Perl-Gemeinschaft angekündigt. Nachdem Larry Wall mehrere hundert Vorschläge auswertete und thematisch sortierte, schrieb er je Thema einen Überblick seiner Vorstellungen (Apocalypse genannt), der nach Diskussionen in den Mailinglisten von Damian Conway zu einer detaillierten Exegese formuliert wird. Dabei wird die Sprache entrümpelt und mit neuen Fähigkeiten ausgestattet, unter anderem wurde die Objektorientierung komplett neu gestaltet und eine neue Grammar-Engine etwickelt. Diese Neugestaltung der Syntax ist weitestgehend abgeschlossen.
Als Interpreter für Perl 6 ist eine neue registerbasierte Virtuelle Maschine namens Parrot in Entwicklung, die viele Sprachen kompilieren (in Bytecode übersetzen) und ausführen können soll. Sie wurde von Chip Salzenberg und Dan Sugalski entworfen und wird derzeit von Chip und Leo(pold) Tötsch betreut.
Nach der Freigabe von Perl 6 und Parrot soll Perl 5 aber noch lange gewartet werden. Mit einem Parser namens Ponie, den Arthur Bergman derzeit entwickelt, soll Perl 5 auch auf Parrot ausführbar sein.
Autrijus Tang entwickelt seit Anfang Februar 2005 einen alternativen Perl 6-Compiler namens Pugs in der Sprache Haskell. Die Entwicklung geht wesentlich schneller als beim Parrot-Projekt voran und wird es auch ermöglichen, wie geplant den Perl 6-Parser für Parrot in Perl 6 zu schreiben.
Merkmale
Ursprung
Geistig
Es ist naheliegend, dass sich Perls Eigenschaften aus den Gedanken und Überzeugungen ihres Begründers ergeben, der sich stark zum Christentum bekennt, Linguistik studierte, als Admin und Programmierer arbeitete und auch als Humorist und Autor bekannt wurde. Aus seiner christlichen Überzeugung heraus wollte Larry Wall ein Werkzeug schaffen, das möglichst vielen Menschen als bescheidener Diener die Arbeit erleichtert, sie in ihrer Kreativität unterstützt und sie in ihrer von Gott geschaffenen Einzigartigkeit ernst nimmt. Dafür entwarf er Perl nah an den menschlichen Sprachgewohneiten, was sich in minimalen Voraussetzungen für Einsteiger, einer starken Kombinierbarkeit der Sprachelemente und einem reichen Wortschatz ausdrückt, der auch verschiedene Befehle oder Wendungen mit gleicher Bedeutung zulässt. Wall sieht darin die Bedürfnisse eines Praktikers nach Freiheit und intuitivem Ausdruck verwirklicht.
Praktisch
Gemäß diesem praktischen Ansatz borgte sich Perl seinen Wortschatz und seine logischen Strukturen von den in den 1980er Jahren unter Unix verbreiteten Sprachen und Werkzeugen, was das Erlernen vereinfachte, aber auch die UNIX-Philosophie umkehrte.
Unix und seine Systembefehle waren meist in der kompilierenden Programmiersprachen C geschrieben. Durch interpretierte Shell-Scripte konnte man die Befehle schnell und einfach kombinieren und durch Pipes konnten die Programme untereinander ihre Ergebnisse weiterreichen. Diese Befehle waren logische Einheiten und sollten genau eine Aufgabe beherrschen („Do one thing and do it well” / „Mach eine Sache und mach sie gut”). Perl verletzt diese Philosophie in dem es diese Befehle zum Bestandteil der Sprache macht und die vorhandenen Werkzeuge übergeht.
Dies wurde notwendig weil für komplexe Aufgaben Shell-Scripte ungeeignet waren, da Pipes Nadelöhre für den Datenaustausch sind, Shell-Scripte nur eingeschränkt Daten zwischenspeichern können und ihr Ablauf sehr einfach ist. Andererseits sind UNIX-Werkzeuge sehr mächtig und konnten bis zu ca. 30 Zeilen C-Quelltext ersetzen.
Um die Vorteile beider Welten zu nutzen, kombinierte Larry C mit Werkzeugen wie sed, awk, grep und sort und Eigenschaften der Bourne Shell, in geringem Maße auch Pascal und BASIC, sowie eigenen Ideen. Diese Fusion ermöglichte kurze, mächtige Programme, die man schnell schreiben und jederzeit auch testen konnte, ohne sie kompilieren zu müssen, was die Entwicklung ebenfalls beschleunigte. Später wurden weitere Fähigkeiten von Sprachen wie LISP, Smalltalk, Python oder Ruby "importiert".
Prinzipien
Perl wurde für den praktischen Einsatz entwickelt und konzentriert sich daher auf einfache Programmierbarkeit, Vollständigkeit und Effizienz. Diese Philosophie drückt sich in den folgenden Schlagworten oder Phrasen aus, die meist von Larry Wall stammen.
Mehrere Wege
Das bekannteste und grundlegendste Perl-Motto ist „There is more than one way to do it“(kurz TIMTOWTDI oder auch Tim Today). Zu deutsch: „Es gibt mehr als einen Weg etwas zu tun“. Damit ist gemeint das Perl kaum Vorgaben macht sondern für jedes Problem absichtlich mehrer Lösungen oder Ausdrucksmöglichkeitn anbietet. Zum Beispiel kann man logische Operatoren „||“ und „&&“ oder „or“ und „and“ bzeichnen, aber auch Befehle mit einem sich überschneidenden Funktionsumfang wie map und for erlauben verschiedene Formulierungen für den gleichen Sachverhalt. Die Freiheit dem persönlichen Programmierstil nachzugehen, ist für manche Programmiere ein wichtiger Grund sich für Perl zu entscheiden.
Eine weiteres Schlagwort, das man auch als Erweiterung von TIMTOWTDI sehen kann, bezeichnet Perl als die erste postmoderne Programmiersprache. Damit ist gemeint, dass Perl verschiedene Paradigmen vereint und es dem Benutzer frei steht, strukturierte, objektorientierte, funktionale und imperative Sprachmerkmale zu kombinieren.
Einfach und möglich
Der andere wichtige Perl-Merksatz ist keep simple tasks simple, and make hard tasks possible, was zu deutsch bedeutet Halte die einfachen Arbeiten einfach und mach (die Lösung der) schwere(n) Aufgaben möglich.
Je nach Kontext
In Perl gibt es Befehle, die verschiedene Bedeutungen haben, je nachdem, in welchem Zusammenhang sie benutzt werden. Derart kontextsensitiv sind Datenstrukturen wie das Array. Wird es einem anderen Array zugewiesen, wird dessen Inhalt übergeben, ist der Empfänger ein einzelner Wert (Skalar) erhält dieser die Länge des Arrays. Ein anderes Beispiel sind die geschweiften Klammern, die in Perl einen Block kennzeichnen, aber auch zum Dereferenzieren von Variablen dienen können.
Kritik
Perls Eigenschaften werden oft so verstanden, dass sie dazu einladen, unübersichtlichen Quellcode zu schreiben, manche Kritiker behaupten sogar, Perl sei die einzige Sprache, in der man „write–only“ programmieren könne, dass also ein einmal geschriebenes Programm weder für andere zu verstehen sei, noch für den Autor, wenn er es nach Monaten liest. Tatsächlich bietet Perl einerseits viele Möglichkeiten, unleserlichen Code zu produzieren, aber es liegt letztlich am Willen und den Fähigkeiten des Programmierers, Les– und Wartbarkeit zu erreichen. Denn andererseits ermöglicht die gleiche Freiheit es auch, besonders nah am Problem oder nah am menschlichen Verständnis zu programmieren, was zu einer sonst unerreichbaren Lesbarkeit führen kann.
Weiterhin wird Perl vorgeworfen, dass es die UNIX-Philosophie verletzt. Siehe dazu den Abschnitt Praktisch.
Technische Merkmale
Verbreitung
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 sich Perl jedoch längst zu einer auch universell einsetzbaren Sprache weiterentwickelt. Systemadministratoren und Webentwickler (siehe CGI, HTML::Mason) setzen sie besonders gern ein. Ein weiteres Hauptanwendungsfeld ist das Data-Munging, aber auch auf vielen anderen Gebieten ist Perl zu Hause – ausgenommen sind eigentlich nur Bereiche, in denen Skriptsprachen aus Geschwindigkeitsgründen ungeeignet sind.
Logos
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. Das Dromedar ist auf dem Programming Republic of Perl Emblem zu sehen, das oft als offizielles Perl-Logo angesehen wird und dessen nichtkommerziellen Gebrauch O'Reilly gestattet. Andere im Zusammenhang mit Perl benutzte Logos sind neben Perlen, die aufgeschnittene Zwiebel (Erkennungszeichen der Perl Foundation), und der Komodowaran der die weit verbreitete Perl Distribution von Active State schmückt.
Syntax
Freies Format
Perl erlaubt freies Formatieren des Quellcodes. Das bedeutet, dass Einrückungen und zusätzliche Leerzeichen syntaktisch unerheblich sind und auch Zeilenumbrüche nach Belieben eingefügt werden können. Logische Konsequenz dieser Freiheit ist die Notwendigkeit, jeden Befehl mit einem Semikolon abzuschliessen.
Variablen
Charakteristisch für Perl ist, dass Variablen durch ein Prefix (auch Sigil genannt) gekennzeichnet werden, das ihren Datentyp anzeigt. Hier einige Beispiele:
$ für Skalare: $scalar @ für Arrays: @array % für Hashes/assoziative Arrays: %hash & für Funktionen (oft optional): &function * für Typeglobs: *all
Basisdatentypen in Perl sind skalare Variablen, Arrays und Hashes (assoziative Arrays).
- Skalare sind typfreie Variablen für einzelne Werte, es können Strings, Zahlen oder Referenzen auf andere Daten oder Funktionen in ihnen gespeichert sein.
- Arrays fassen mehrere Skalare unter einem Variablennamen zusammen. Arrayeinträge haben einen Index (die Zählung beginnt bei 0).
- Hashes fassen ebenfalls Skalare zusammen, allerdings werden hier Einzelwerte (Values) nicht über numerische Indizes, sondern mit Hilfe zugehöriger Keys (alphanumerische Schlüssel) eindeutig identifiziert und angesprochen.
Hashes und Arrays lassen sich einander zuweisen, wobei Hashes als Listen von Key/Value-Paaren betrachtet werden. Daten verschieden Typs lassen sich beliebig zu neuen Datenstrukturen kombinieren, beispielsweise sind Hashes denkbar, die neben Arrays auch einzelne Skalare enthalten.
Package-Variablen werden automatisch erstellt, sobald sie das erstemal verwendet werden.
undef(<variable>)
gibt die angegebene Variable wieder frei.
Kontrollstrukturen
Die grundlegenden Kontrollstrukturen unterscheiden sich kaum von denen in C, Java und JavaScript:
Bedingte Ausführung
if
funktioniert wie aus C bekannt, unless
, eine Besonderheit von Perl, ist eine Schreibweise für if (!(<Bedingung>))
. Eine Case- oder Switch-Anweisung gibt es in Perl 5 nicht, aber den ternären Operator ? :
, der mit do {if {<Bedingung>} {<Anweisungen>} else {<Anweisungen>}}
umschrieben werden könnte. Die optimierten logischen Operatoren erlauben auch eine bedingte Ausführung. Bei or
(bzw. ||
) wird der zweite Ausdruck ausgeführt, wenn das Ergebnis des ersten kein wahrer Wert ist, and
(bzw. &&
) funktioniert analog.
if (<Bedingung>) {<Anweisungen>} [elsif (<Bedingung>) {<Anweisungen>}] [else {<Anweisungen>}] unless (<Bedingung>) {<Anweisungen>} [else {<Anweisungen>}] <Bedingung> ? <Anweisung 1> : <Anweisung 2>; <Ausdruck 1> || <Ausdruck 2>; <Ausdruck 1> && <Ausdruck 2>;
Schleifen
Wie in C iterieren while
und for
(in Semikolon-Form), solange die Bedingung wahr ist, until
, bis sie wahr ist, und foreach
iteriert über ein Array. In Perl 5 sind for
und foreach
austauschbar.
[label:] while (<Bedingung>) {<Anweisungen>} [continue {<Anweisungen>}] [label:] until (<Bedingung>) {<Anweisungen>} [continue {<Anweisungen>}] [label:] for ([<Startanweisung>]; [<Bedingung>]; [<Updateanweisung>]) { <Anweisungen> } [continue {<Anweisungen>}] [label:] foreach [ [my] $element] (<liste>) {<Anweisungen>} [ continue {<Anweisungen>} ]
goto
springt ungeachtet der Verschachtelung zu einer Schleife die mit genanntem Label beginnt,
last
verläßt sofort die Schleife, next
springt sofort zur nächsten Iteration und redo
springt zum continue
-Block und wiederhohlt danach die derzeitige Iteration.
do {<Anweisungen>} while <Bedingung>; # Spezialfall: in dieser Form do {<Anweisungen>} until <Bedingung>; # mindestens eine Ausführung
Nachgestellte Kontrollstrukturen
Die oberhalb aufgezählten Kontrollstrukuren beziehen sich auf einen Block mit mehreren Anweisungen. Bei einzelnen Anweisungen kann man auch die verkürzte, nachgestellte Schreibweise wählen die auch den (englischsprachigen) Lesern das Verständnis durch natürlichsprachige Formulierung erleichtert.
<Anweisung> if <Bedingung>; <Anweisung> unless <Bedingung>; <Anweisung> while <Bedingung>; <Anweisung> until <Bedingung>; <Anweisung> for <Liste>;
Dokumentation
- Plain Old Documentation (POD) ist die Beschreibungssprache für die Dokumentation von Perlprogrammen.
Spaß mit Perl
Viele Spracheigenschaften von Perl laden dazu ein, Programmcode kreativ zu gestalten. Dies hat zu verschiedenen intellektuellen, teils humorvollen, teils skurrilen Wettbewerben und Traditionen um die Programmiersprache Perl geführt.
Golf
Golf ist eine Sportart für Programmierer, bei der das kürzeste Programm (in ASCII-Zeichen), das eine gestellte Aufgabe vollständig erfüllt, gewinnt. Da Perl viele, teils trickreiche Kürzel und Abkürzungen gängiger Techniken kennt, ist dies eine besonders populäre Disziplin unter Perl-Programmierern.
Poesie
Eine anderer Wettbewerb prämiert die besten Beispiele in Perl-Poesie, die in 2 Kategorien betrieben wird. Neben der freien Form, die lediglich Perl zum Inhalt hat, wird hier versucht Gedichte zu schreiben, die vom Interpreter ohne Warnungen und Fehlermeldungen ausgeführt werden. 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-Kategorie des englischsprachigen Perl Monks-Forums. Daneben gibt es auch noch einen Perl - Haiku Wettbewerb, der dieser japanischen Gedichtform gewidmet ist.
Obfuscation
Sehr berühmt und berüchtigt ist auch die Disziplin obfuscation, für die es auch einen jährlichen Wettbewerb gibt, der am ehesten mit dem International Obfuscated C Code Contest vergleichbar ist, den Larry selbst zweimal gewann. Hier wird danach gestrebt, auf ungewöhnliche und kreative Art und Weise die Funktion eines Programms zu verschleiern. Dies ist in Perl besonders leicht, da es für fast alles Kürzel gibt, die Sprache selbst sehr dynamisch ist und viele Dinge abhängig vom Kontext automatisch geschehen, was auch oft als „Perl-Magie“ bezeichnet wird.
JAPH
Eine Art Unterkategorie von obfuscation sind die von Merlin Randal L. Schwartz begründeten Disziplin: JAPH. Das sind Signaturen, die kleine Perl-Programme enthalten, welche meist nur den Namen des Autoren oder eine Botschaft auf eine möglichst nicht nachvollziehbare Art ausgeben. Die Buchstaben JAPH sind die Anfangsbuchstaben von Merlins Signatur Just Another Perl Hacker.
Perligata
Das Perl-Modul Lingua::Romana::Perligata von Damian Conway ist wohl eines der skurrilsten Module schlechthin: Es ermöglicht dem Benutzer, Perl komplett in Latein zu schreiben. Wie in der lateinischen Sprache ist die Satzstellung (weitgehend) irrelevant für die Bedeutung eines Ausdrucks. Von Variablen bis Referenzen und mehrdimensionalen Arrays ist alles in dieser neuen Sprachdefinition vorhanden. Nahezu alle Sonderzeichen wurden aus der Sprache entfernt, Variablen gleicher Namen, aber unterschiedlicher Struktur (Beispielsweise $next und @next) werden dekliniert, um die entsprechende Variable zu adressieren. Etwas Beispielcode:
insertum stringo unum tum duo excerpemento da. # Entspricht: substr($string,1,2) = $insert; clavis hashus nominamentum da. # Entspricht: @keys = keys %hash;
Aus ähnlichem Antrieb entstanden „Sprach-Module“ für klingonisch, Borg oder Leetspeak. Solche Module sind ein gutes Beispiel für den Zeitaufwand, den viele Leute Perl widmen; Perl kann man in diesem Sinne durchaus als Hobby bezeichnen.
Acme
Brian Ingerson legte mit seinem bekanntem Modul namens Acme, das nichts weiter tut, als dem Benutzer zu bescheinigen, sein Programm habe den Höchstgrad an Perfektion erreicht, einen Grundstein für eine CPAN Kategorie von Modulen, die keinen produktiven Nutzen haben, sogar oft bewusst kontraproduktiv sind oder eine Funktion vorgeben, die unmöglich so erreicht werden kann und eher als Witz zu verstehen ist. Dieses Spiel mit skurrilen Ideen umfasst beeindruckende ASCII-Art, Module die den Quellcode unsichtbar machen(Acme::Bleach), oder sonstig humorvoll manipulieren, indem sie ihn zum Beispiel mit typischen Sprachfehlern des Präsidenten Bush versehen oder Methoden zufällig löschen, was die Anwesenheit einer diebischen Elster simulieren soll.
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 (Timtowtdi)
- ... we often joke that a camel is a horse designed by a committee, but if you think about it, the camel is pretty well adapted for life in the desert. The camel has evolved to be relatively self-sufficient. On the other hand, the camel has not evolved to smell good. Neither has Perl. (Larry Wall über das Kamel als Perl-Maskottchen)
Weitere Informationen
Literatur
- Larry Wall u. A.: Programmieren in Perl, O'Reilly Verlag, ISBN 3897211440 (das Kamel-Buch)
- Randal L. Schwartz, Tom Christiansen: Einführung in Perl, O’Reilly, ISBN 3897211475 (das Lama-Buch)
- Michael Schilli: GoTo Perl 5, Addison-Wesley, 1998, ISBN 3827313783 (deutsch)
- Johan Vromans: Perl 5, kurz und gut, O'Reilly Verlag 2000, ISBN 3897212277 (Kurzreferenz)
- Joseph N. Hall, Randal L. Schwartz: Effective Perl Programming, Addison-Wesley Professional, ISBN 0201419750
- Damian Conway: Object Oriented Perl, Manning 2000, ISBN 1884777791
- (in schlechter Übersetzung) deutsch bei Addison-Wesley 2001: Objektorientiert Programmieren mit Perl, ISBN 3827318122
- Mark Jason Dominus: Higher Order Perl, Morgan Kaufmann, ISBN 1558607013
- Randall, Sugalski, Tötsch: Perl 6 & Parrot Essentials, O’Reilly 2004, ISBN 059600737X
Konferenzen und Workshops
The Perl Conference ist ein großes, von O’Reilly ausgerichtetes, allerdings auch teures Treffen in Amerika. YAPCs (Yet Another Perl Conferences) versuchen, Entwickler in einem möglichst erschwinglichen Rahmen lokal zusammenzuführen, und haben inzwischen beispielsweise in Amerika, Europa und Israel Tradition. Der Deutsche Perl-Workshop 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.
Termine
- Am 9. und 10. Juni 2005 findet in Wien der 2. österreichische Perl Workshop statt.
- Der 8. deutsche Perl-Workshop findet vom Mittwoch, 1. März 2006 (Aschermittwoch) bis Freitag, 3. März 2006 in Bochum statt. Dieser ist an professionelle Perl-Entwickler gerichtet, welche bereits an größeren Perl-Projekten beteiligt waren.
Weblinks
Vorlage:Wikibooks1 Vorlage:Wikibooks2
Allgemeine Informationen
- http://www.perl.org/ – Offizielle Homepage von Perl
- http://www.cpan.org/ – CPAN – Perlmodularchiv
- http://www.activestate.com/ – Perl vorkompiliert für Windows und ein Cookbook-Archiv mit von Benutzern beigesteuerten „Kochrezepten“
- http://history.perl.org/PerlTimeline.html – Perl-Zeitlinie
- http://www.theperlreview.com/ - Perl-Online-Journal
- http://perlcast.com/ - Perl-Nachrichten in Audioformat
Hilfe zu Perl
- http://perldoc.perl.org/ – Die Online-Version der Perl-Dokumentation
- http://perl-seiten.privat.t-online.de/ – Gutes deutsches Perl-Tutorial für Einsteiger
- http://www.uni-essen.de/~hrz030/perl/ – Sehr kompakte Perl-Einführung mit vielen kurzen Beispielcodestücken
Perl-Benutzer
- http://www.perlmonks.org/ – Internationales Internetforum der Perl-Benutzer
- http://www.perl-community.de/ – Forum deutscher Perl-Benutzer
- http://www.perl.de/ – Deutschsprachiges Perl-Forum
- http://www.perlunity.de/ – Deutschsprachige Perl-Community
- http://pm.org – Perl Mongers – lokale Benutzergruppen
- ↑ history.perl.org.
- ↑ perl-5.23.2 is now available! (englisch).
- ↑ Release 5.23.2. 20. August 2015 (abgerufen am 6. März 2019).
- ↑ The perl Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 20. September 2018).