Perl

Wissenswertes

 * Perl ist die einzige Programmiersprache, in der man träumen kann.
 * Außerdem wurden die Borg von Perl assimiliert.
 * Außerdem meint ein Japaner, er kann das viel besser, und nennt seine Sprache Ruby. Leider ist Ruby derart schlecht dokumentiert, dass man darin nur Alpträume hat.
 * Perl ist gar keine Programmiersprache sondern eine Religion

Geschichte und Herkunft

 * Gerüchten zu Folge wurde Perl vom Propheten Larry Wall entdeckt, dem der Perl 1.0 Quellcode vom Schöpfer im Jahre 1 n.Pl. (1987 n.Chr.) auf 10 Steintafeln überreicht wurde (Wall-Evangelium, Psalm 46) und der als Webdesigner für seinen überragenden Sinn für Ästhetik berühmt ist. Deshalb wird Larry Wall von Perl-Programmierern als Erlöser aller Kamele verehrt. Über die genauen Umstände sind sich ernsthafte Historiker jedoch uneins, da aus dieser prähistorischen Zeit nur noch wenige Aufzeichnungen existieren. Vor einiger Zeit wurden jedoch die Originalsteintafeln in einer antiken mongolischen Grabkammer in der Wüste Gobi gefunden, was die frühere Verbreitung von Kamelen bis nach Zentralasien erahnen lässt. Perl-Benutzer finden sich in sektenartigen Vereinigungen zusammen wo sie okulte Rituale pflegen und versuchen u.a. die New Life Church zu unterwandern. Daher kommt auch die Bezeichnung "Perl Monk". Besonders der Wanderprediger Simon Cozens, der heute in Japan das Wort Walls predigt, hat sich beim Aufbau der neuen "Church of Perl" verdient gemacht, während er angeblich der "Saint Aldate's church" angehört.
 * Der esoterische Charakter Perls (esoterische Programmiersprache) und der für Menschen schwerleserliche Perl-Code legt allerdings auch eine extraterrestrische Herkunft nahe. Tatsächlich wurde Perl im Rahmen eines Geheimprojekts der National Security Agency entwickelt (Codename blacker), in dem es um die Übersetzung außerirdischer Textfragmente ging. Der Perl-Interpreter war dabei das erste Werkzeug, das die außerirdischen Hieroglyphen verstehen konnte. Womöglich stammen Quellcodefragmente von dem Bordcomputer des bei Roswell abgestürzten UFO. Natürlich vertuscht die amerikanische Regierung diese Fakten heute. Unzweifelhaft wird Perl auch zu anderen esoterischen Zwecken, wie beispielsweise dem Entschlüsseln des Bibelcodes und der Nostradamus-Prophezeiungen, verwendet.
 * Moderne Linguisten sehen eine unmittelbare Verwandschaft zu der TECO Macrosprache. Offensichtlich war Perl nur als Zusammenstellung von TECO Macros gedacht, um das Editieren von Texten mit Macros in Klingonischer Sprache (lingua::klingon) zu ermöglichen.

Perl 6
Im Gegensatz zu TECO oder höheren Programmiersprachen wie FORTRAN ist es bei Perl jedoch unklar ob die aktuelle Version (5.8) bereits turing-complete ist, oder ob dieses Feature erst durch diverse Regular-expression-Erweiterungen zusammen mit der Unterstützung von Dummyvariablen bei Subroutinen im langerwarteten Nachfolger Perl 6 realisiert wird. Zukünftige Perl 6 Programme sollen aber nicht mehr nur interpretiert werden, sondern auf der sogenannten Parrot Virtual Machine, einer Art Emulator für den Z80-CPU, ausführbar sein. Mit über 6000 neuen Operatoren (u.a. dem ¥-, £- und §-Operator), einer Schnittstelle für Python-Macros und einem neuen given-Befehl (gibt ein ASCII-Bild von Larry Wall aus) ist die Sprache aber äußerst kompliziert umzusetzen. Das einzige Werkzeug das Perl 6 Quelltext momentan evaluieren kann nennt sich Bugs, einem in der interpretierten Sprache Haskell geschriebener Perl-6-Interpreter, der Perl-6-Code zu Javascript übersetzen kann, das mit einem Perl-5-Programm ausgeführt wird oder so ähnlich. Bugs ist damit womöglich die erste von Menschenhand geschaffene Perl-Implementation. Ähnlich wie beim GNU Hurd Projekt wird die Vollendung des Perl 6 Compilers aber nicht vor Ende der 2030ger Jahre erwartet.

Programme
Perl-Entwickler finden immer wieder elegante und effiziente Wege Probleme des Alltags durch moderne Computertechnologie zu lösen und so der Bestimmung Perls als göttliches Instrument gerecht zu werden. Das nützlichste Programm wird alljährlich beim "Obfuscated Perl Contest" gekührt und so in den Dienst des Fortschritts der Menschheit gestellt. U.a. entstand so im Wettstreit dieses Programm zum Ausgeben von Text auf dem Computerbildschirm: @P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{ @p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord ($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&& close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep rand(2)if/\S/;print Quelle: http://perl.plover.com/obfuscated/

Beispielprogramm
Dieses einfache, für jeden Anfänger sofort verständliche Programm gibt "42" aus. Oder auch nicht. Wir haben es selbst noch nicht ganz verstanden.

Ho"(!)(!/&"%HWKJ"92(")"KL)";

Zitate
I dunno, I dream in Perl sometimes...

-- Larry Wall in <8538@jpl-devvax.JPL.NASA.GOV>

Kamelbuch, Strick, Kinesischer Perlfluss wiki:Perl wiki-en:Perl (disambiguation)