Neue Fachbücher zur Programmierung

Objektorientierung und das Web machen Scriptsprache Perl populär

21.03.1997

Das Akronym Perl steht für Practical Extraction and Report Language, und diese Scriptsprache eignet sich besonders für die Textbearbeitung und Programmierung des Common Gateway Interface (CGI) von Web-Servern. "Perl is a language for getting your job done", meint der Erfinder von Perl, Larry Wall. Tatsächlich kann man damit erstaunlich leicht Texte parsen und manipulieren. Möglich wird dies durch die gelungene Implementierung von regulären Ausdrücken in Perl, die in der Unix-Welt von Werkzeugen wie grep, sed und awk bekannt sind. Perl-Scripte erweisen sich in der Praxis als robuste Werkzeuge, und die Sprache verfügt auch über Sicherheitskonzepte, die den Bedürfnissen des Internets angemessen sind.

Ein wesentlicher Faktor beim Siegeszug der Scriptsprache stellt die Tatsache dar, daß der Quellcode von Perl frei verfügbar ist. Dies erleichterte ihre Portierung auf viele Plattformen, darunter alle Unix-Varianten, den Macintosh, VMS oder OS/2. Microsoft finanzierte die Entwicklung einer Version für Windows 95 und NT (zu beziehen über http://www.hip.activeware.com/).

Die Sprache wird auch weiterhin von ihrem Erfinder und einigen seiner Mitstreiter gepflegt. Perl ist seit über einem Jahr in der Version 5 erhältlich, die neben zahlreichen Einzelverbesserungen nun auch objektorientierte Erweiterungen kennt und die Einbindung von C-Routinen erleichtert. Erste Informationen dazu und Verweise auf wichtige andere Seiten zum Thema gibt es auf der Perl Language Home Page http://mox.perl.com/perl/index.html.

Zu der Scriptsprache Perl gehört eine Reihe von sehr lebendigen Newsgroups (comp.lang.perl.*), die Anfängern und Experten Hilfestellung bietet und ein gut organisiertes Netz von gespiegelten Modularchiven (beispielsweise ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/). Unter diesen Modulen, die von Perlanwendern zusammengetragen und gepflegt werden, findet man Schnittstellen zu Netzdiensten aller Art und zu Benutzeroberflächen (was sich bislang aber auf Unix konzentriert), aber auch zu zahlreichen Datenbanken, unter anderem über ODBC.

Perl hat auch Schwächen, vor allem bei der Ablaufgeschwindigkeit der Programme. Das Script wird bei der Ausführung erst in Bytecode übersetzt und dann mit dem Perl-Interpreter ausgeführt. Perl-Programme laufen also schnell, starten aber langsam. Mittlerweile ist ein Perl-Compiler, der Perlscripte in C übersetzt, als Alphaversion zugänglich.

Das Handbuch zu Perl ist umfangreich und gut geschrieben. Es existiert in allen möglichen Formaten, als "man pages" unter Unix, in HTML, Postscript und Adobes PDF. Darüber hinaus gibt es allgemeine FAQs und spezielle für bestimmte Betriebssysteme (beispielsweise für 32-Bit-Windows). Außerdem bieten Buchverlage inzwischen ein Kompendium und eine Reihe von Einführungen an, die ausschließlich Perl gewidmet sind. Zusätzlich findet sich in den meisten Büchern zum Thema CGI ein mehr oder weniger gelungenes Kapitel zur Scriptsprache.

Der wichtigste Titel ist sicherlich "Programming Perl 2nd Edition" von Larry Wall, Tom Christiansen und Randal L. Schwartz (O?Reilly 1996, 39,95 Dollar). Jeder Perl-Programmierer scheint ein Exemplar der ersten Auflage zu besitzen und die meisten haben sich wohl auch die zweite Auflage angeschafft, in der die neuen Möglichkeiten der Version 5 ausführlich behandelt werden. Perl-5-Erfinder Larry Wall und seine Koautoren, die ebenfalls in der Perl-Welt schon lange einen Namen haben, richten sich mit diesem umfassenden Kompendium vor allem an den erfahrenen Programmierer, der hier gedrängt alle wesentlichen Informationen zu Perl und seinen Standardmodulen erhält. Der eigenwillige Humor Walls macht die Lektüre zu einem Genuß. Das Buch wird übrigens meistens nur "Camel" genannt, da auf dem Titelblatt ein Kamel zu sehen ist, während die Einführung in Perl von Randal L. Schwartz nur "Lama" heißt. Da diese Einführung auch in der deutschen Übersetzung noch nicht auf die Besonderheiten von Perl 5 eingeht, sollte man entweder auf die Neuauflage warten oder zu einer der anderen Einführungen greifen.

Man sagt, Perl sei als erste Programmiersprache wenig geeignet, da es mit seinen laxen Regeln zum unstrukturierten Arbeiten geradezu verleite. Wer dennoch mit Perl anfangen will, ist daher mit David Till: "Teach Yourself Perl 5 in 21 Days". Sams 1996 (2. überarb. Auflage), 39,99 Dollar, gut bedient. Till vermittelt sehr klar die wesentlichen Prinzipien des Programmierens und von Perl, und gewöhnt den Anfänger nebenbei an klare Programmstrukturen. Allerdings wandelt sich das Buch in der zweiten Hälfte immer mehr zum Kompendium, in dem weniger in die Materie eingeführt als jeder mögliche Schalter erklärt wird. Gerade die Kapitel über das Neue von Perl 5, Referenzen und objektorientiertes Programmieren, sind leider nicht von Till selbst verfaßt, sondern vom Autor des im Internet heftig kritisierten "Perl Unleashed", der auch hier wirr und unverständlich bleibt. Anders als die anderen Titel führt Till nicht in das Schreiben von CGI-Scripten ein - auch wenn auf dem Buchumschlag etwas anderes behauptet wird.

Jon Orwant, der Herausgeber des Perl Journals, betont in seiner Einführung, "Perl 5. Interactive Course" (The Waite Group 1996, 49,99 Dollar) dagegen gerade die "Perlismen", also die Möglichkeiten mit wenigen Zeilen meist sehr kryptischen Codes durch die Verwendung von Standardvariablen schnelle Ergebnisse zu erreichen. Für den Einsteiger sicherlich nicht unproblematisch, ist Orwants Buch wohl für den Umsteiger eine brauchbare Einführung, die aufgrund seiner profunden praktischen Kenntnisse von Perl mit dessen Besonderheiten bald vertraut macht. Seine Einführung in das Arbeiten mit CGI-Scripten ist vergleichsweise kurz ausgefallen, dafür widmet er sich auch Themen wie der Server- und Netzwerkverwaltung mit Perl, dem Zugriff auf Datenbanken und der Kooperation Perls mit Programmiersprachen (insbesondere C).

David Medinets "Perl 5 by Example" (QUE 1996, 39,90 Dollar) richtet sich an den Programmierneuling. Wie der Titel schon sagt, führt er über zahlreiche Beispielprogramme, deren Funktionsweise vorher in Pseudocode erklärt wird, in Perl 5 ein. Das Buch enthält wohl eine der besten Erklärungen der objektorientierten Arbeitsweise von Perl 5 für Anfänger und im Anhang eine vorbildliche Kurzreferenz. Ein verhältnismäßig großer Teil des Buchs ist dem Schreiben von CGI-Scripten gewidmet - die geeignete Einführung für diejenigen also, die Perl vor allem zu diesem Zweck erlernen wollen, während es die vielen anderen Anwendungsbereiche, beispielsweise Netzverwaltung, spärlich oder gar nicht behandelt. Die beigelegte CD enthält unter anderem den Text des Buchs im HTML-Format und auch den Text von MÆcheçl Foghlú: "Perl Quick Reference" (QUE 1996, 19,99 Dollar), einer an sich wenig empfehlenswerten Referenz zu Perl 5.

Das zur Zeit einzige deutschsprachige Buch zu Perl 5 ist von Michael Schilli: "Effektives Programmieren mit Perl 5. Objektorientierung, Graphische Benutzeroberflächen, Internet-Anwendungen." (Addison-Wesley 1996, 59,80 Mark). Schilli richtet sich ausschließlich an Unix-Anwender und Programmiererfahrene. Nach einer sehr knappen Einführung in die Scriptsprache behandelt er die objektorientierte Programmierung mit Perl 5 und führt anschließend sehr ausführlich in die Anwendung eines Perl-Moduls zur Erstellung grafischer Benutzeroberflächen mit Hilfe von TK ein. Wer sich für die Programmierung von GUIs mit Perl interessiert, wird hier fündig.

Zuletzt seien noch zwei Titel genannt, die Perl nur als Werkzeug zur Erstellung von CGI Scripts behandeln. Shishir Gundavaram, Autor von "CGI Programming in the World Wide Web" (O?Reilly & As. 1996. 29,95 Dollar, inzwischen auch in deutscher Sprache erschienen) ist Koautor der Usenet FAQ zu CGI. Der sehr pragmatische Zugang, der die meisten FAQs prägt, zeigt sich auch in seinem Buch. Zahlreiche Anwendungsgebiete von CGI, beispielsweise HTML-Formulare verarbeiten und viele konkrete Fallbeispiele, fast alle in Perl, machen sein Buch zu einer Fundgrube für den Anwender. Allerdings fehlt eine Diskussion allgemeinerer Fragen zum CGI-Standard, seiner Geschichte, seiner Vor- und Nachteile. Was auch den praktischen Nutzen etwas einschränkt ist der Mangel einer Kurzreferenz im Anhang und der Verzicht auf eine ausführliche Darstellung der sehr mächtigen Perl-Module, die es zum CGI-Scripting inzwischen gibt.

Speziell auf die Belange von Windows-Anwendern zugeschnitten ist der "CGI Primer Plus for Windows." (The Waite Group 1996. 44,99 Dollar) von Mohammed J. Kabir. Versucht wird eine Gesamtdarstellung, die vom Konzept der CGI-Technik und seinen wesentlichen Elementen über Grundbegriffe von HTML und Perl bis zum Serveraufbau reicht. Realisiert wird dieses ehrgeizige Ziel allerdings vor allem in Listen mit Tags und Funktionen. NT-spezifische Belange kommen kaum vor. Zudem ist das Buch durch viele Seiten Programmiercode unnötig aufgebläht. Sie wären wohl besser auf der CD aufgehoben. Das ODBC-Modul von Roth, für viele Perl-Anwender unter Win 32 unschätzbar, wird überhaupt nicht erwähnt, die OLE-Automation nur kurz abgehandelt. Kurzum, ein wenig empfehlenswerter Titel, was umso bedauerlicher ist, da es auf die Bedürfnisse von Windows-Anwendern zugeschnittene Perl- und CGI-Bücher kaum gibt.

*Fotis Jannidis ist freier Journalist in München.