Jenseits vom mehr als üppigem Datenbank-Support dank DBI und seinen verfügbaren Backends gibt es mit Catalyst, Mojolicious, Jifty oder WebGUI einiges zur Auswahl. Noch viel mehr findet man im Internet unter dem Stichwort Perl 5 Web-Frameworks. "There is more than one way to do it" war und ist immer Perls Motto und hat eine ganze Kultur geprägt, die man entweder liebt – oder aber hasst und zu Python wechselt.
Perl 5 wird außerdem gerne vorgeworfen, dass es keine richtige Objektorientierung beherrscht, was man von einer modernen, state-of-the-art Programmiersprache heute erwartet. Der bless-Hash-Referenz-Pfeil-Stil gehört auch nicht zu meinen Favoriten in Perl. Wer aber OOP in Perl will, kann heute einfach "Moose" installieren und damit wesentlich flauschiger objektorientiertes Perl schreiben. Wer es gar nicht abwarten kann: Perl 6 kann richtiges, ehrliches OOP für echte Männer mit "class" und "method" und Accessoren und allem, was das Herz begehrt. Der "." wird auch nicht mehr zum Zusammenfügen von Zeichenketten verwendet, sondern zum Methodenaufruf am Objekt. Als Bindeglied zwischen Zeichenketten dient in Perl 6 die Tilde, die bereits vom Match-Operator ~= bekannt ist.
Perl 6
Böse Zungen lästern gern über die Beinahe-Dekade, die "das neue, bessere, schönere Perl" jetzt in der Mache ist, und nicht ganz zu Unrecht bemägeln Kritiker, dass es seit der Ankündigung von Perl 6 im Jahr 2000 bis heute kein handliches Distributionspaket "Perl6" gibt. Für das Erscheinen von Perl 6 gibt es aber längst mehr als nur Silberstreifen am Horizont. Die Perl Foundation hat eine Spende von 200.000 US-Dollar erhalten und Patrick Michaud arbeitet wie ein Uhrwerk an Rakudo – dem Perl 6, das auf der Parrot Virtual Machine basiert.
Perl 6 ist zunächst eine Referenz – jeder kann hingehen und sich sein eigenes Perl 6 implementieren, was auch genau so passiert ist. Es gibt ein eigenständiges Perl 6 "Pugs" als Standalone-Interpreter von Audrey Tang, die frühzeitig Pugs in Haskell implementiert hatte, und das Rakudo-Perl 6, inzwischen in einem eigenständigen Git-Repository zu finden. Pugs war einige Zeit der Vorreiter in der Implementierung von Perl 6. Zur Zeit wartet Tang aber auf eine neue Haskell-Version und will dann mit der Entwicklung weitermachen. Herunterladen und benutzen kann man Pugs aber weiterhin.
Es mag auch bis zum ersten "richtigen" Perl 6 sicher noch bis Ende dieses Jahres, vielleicht sogar bis 2010 dauern, aber Parrot auf der anderen Seite wird zur Zeit pünktlich Mitte eines jeden Monats veröffentlicht und soll im März in der Version 1.0 erscheinen. Wer sich ein Rakudo-Perl bauen möchte: Parrot-Tarball herunterladen, perl Makefile.PL, make, make install und dann ins "languages" Verzeichnis wechseln. Dort zieht man sich das Rakudo aus dem Github (git clone git://github.com/rakudo/rakudo.git) hinein und baut sich ein Perl6 mit perl Configure.pl; make perl6. Das Binary kann man sich dann nach /usr/local/bin kopieren. Auch wenn bisher nur wenige Module vorhanden sind, kann man bereits eigene schreiben und SQLite benutzen. Zur Zeit enthält Rakudos @*INC nur ".", interpretiert aber Angaben in PERL6LIB und versteht natürlich auch das übliche
@*INC.push("/mein/Modulepfad/");
mit dem man sich schonmal SQLite und eigene Module ergänzen kann.
Die Sache mit dem Papagei unter dem Kamel
Vielen Leuten ist vermutlich nicht klar, was es mit dem Gewese um Perl 6 im Zusammenhang mit Parrot genau auf sich hat, scheint doch Parrot einfach irgendeine neue virtuelle Maschine zu sein, auf der man angeblich "irgendwann" mal alle möglichen interpretierten Sprachen laufen lassen kann. Der Kick an Parrot ist letztendlich (für Perlfreunde zumindest), dass Parrot mit "PIR" eine Art polierten Assembler für Normalsterbliche mitliefert, der es – im Vergleich zu dem traditionellen XS-Interface – extrem einfach und elegant macht, später alle möglichen Bibliotheken in Perl (und in allen anderen Parrot-unterstützten Sprachen) zu verpacken und zu verwenden.
Wer Genaueres lernen möchte, sollte sich das Beispiel des kleinen SQLite-Wrappers im Parrot-Verzeichnis genauer anschauen. Es liefert ein SQLite.pm mit, das auch in Perl 6 einfach mit "use SQLite;" geladen wird. Eine von Perls Schokoladenseiten war und ist CPAN und die riesige Menge sehr bequem und (meistens) sehr einfach zu installierender Perlmodule, die alles Denkbare in Wrapper verpacken und modularisieren. Diese Flexibilität von Perl wird mit Parrots PIR noch einfacher zu machen sein und hoffentlich viele Fans finden. Auf den ersten Blick jedenfalls erscheint ein Modul/Wrapper mit PIR wesentlich übersichtlicher als einiges an XS-Code.
"ABER WO IST PERL6?!" oder "Aber es gibt doch noch gar nichts über Perl 6" werden jetzt die Pessimisten einwerfen. Glücklicherweise ist vor ein paar Monaten eine Schar unermüdlicher Perl-Freunde angetreten und hat das November-Wiki –komplett in Perl 6 – geschrieben.
Eine Liste mit den Features, die in Perl 6 bereits funktionieren und mit denen, die noch nicht oder nur fehlerhaft klappen, findet sich bei der Perl Foundation. Die im Parrot-Tree vorhandene Beispielimplementation von SQLite sollte als Beispiel dienen, wie man bereits jetzt mit Parrot und Rakudo anfangen kann, die mehr als 20000 CPAN-Module zu aktualisieren. Wer Dokumentation zu der neuen Perl-Version braucht, dem hilft ein Blick in Moritz Lenz' Blog-Serie über Perl 6, die erfahrenen Perl-Leuten vermutlich für die ersten Projekte reichen dürfte.
O'Reillys Perl.com hat diverse kleinere Artikel über Perl 6 veröffentlicht, die man sich als Beispiel-Code heranziehen kann. Einige Kochbuch-artige Code-Schnipsel kann man auch im Github begutachten oder im Pugs-Repository.
Alle Leute, die Perl schon immer gehasst haben, werden Perl 6 wahrscheinlich auch nicht viel lieber mögen: Die Sigils und Twigils gibt es weiterhin und Perl bleibt definitiv sehr perliges Perl und wer kein OO machen möchte, kann wie gewohnt mit sub und ganz ohne Klassen und Methoden hantieren. Auch weiterhin gibt es nicht den allein seligmachenden Weg X zum Problem Y.
Wer mal wieder Perl-Atmosphäre schnuppern möchte, kann vom 25.02. bis zum 27.02 in Frankfurt am Main am deutschen Perl-Workshop teilnehmen, der 2009 zum 11. Mal stattfindet.
Siehe zu Perl 6 auch:








