# Einführung

Es war einmal vor langer, langer Zeit, bei einem Computerhersteller weit, weit weg, da lernte eine junge Schriftstellerin - nämlich ich - die Programmierung von sed und awk-Skripts unter Unix. Damals gab es die 21-Tage-Reihe noch nicht, und so lernte ich Unix-Skripting auf die altmodische, altehrwürdige Weise: durch Versuch und Irrtum, mit Hilfe skizzenhafter Online-Dokumentationen, durch Skripts anderer Leute und viel Fragerei. Was habe ich Fragen gestellt... Jedesmal, wenn ich nicht mehr weiter kam, schickte ich E-Mails an all meine Unix-erfahrenen Freunde. Meine Unix- erfahrenen Freunde antworteten stets geduldig und zeigten mir behutsam, was und wo meine Fehler waren. Doch eins war besonders erstaunlich an diesen Mails. Sie begannen alle mit demselben Satz: »Das solltest du mit Perl machen.«

Ganz egal, was ich vorhatte, jedesmal stand da: »Das solltest du mit Perl machen.« Irgendwann schließlich habe ich diesen Wink mit dem Zaunpfahl begriffen, mein Durcheinander von Unix-Programmen verlassen und Perl gelernt. Mittlerweile kann ich mir überhaupt nicht mehr vorstellen, mit irgend etwas anderem zu arbeiten.

»Das solltest du mit Perl machen« könnte sehr gut das Motto von Perl sein (nur hat Perl schon jede Menge Mottos). Perl ist sozusagen die eierlegende Wollmilchsau unter den Programmierwerkzeugen. Perl ist vielleicht nicht für jedes Problem die beste Lösung, aber es ist ohne Zweifel so ziemlich jedem Problem gewachsen und meist eine große Hilfe. Schnell anzuwenden, schnell auszuführen, schnell zu ändern, kann man sich in Perl schneller die Lösung eines Problems basteln, als man eine C++- Entwicklungsumgebung auch nur gestartet hat.

Perl ist nicht nur für Unix geeignet - Perl läuft auf verschiedenen Plattformen, darunter auch Windows und Mac, und auf diesen grafischen Benutzeroberflächen ist Perl genauso nützlich wie auf kommandozeilenorientierten Systemen wie Unix. Ach ja, und dann wäre da noch das World Wide Web. Perl ist eine der populärsten Sprachen (man könnte behaupten, der Standard) für CGI-Skripts und die Verwaltung von Webservern.

Das Schwierigste an Perl ist allerdings, es zu lernen. Perl ist ein Mischmasch aus verschiedenen Unix-Tools, Shell-Skripting, C und vereinzelten objektorientierten Features. An diesem Punkt kommt das Buch »Perl in 21 Tagen« ins Spiel. Dieses Buch bietet eine sanfte, aber gründliche Einführung in die Sprache Perl und ihre Anwendungsmöglichkeiten. Einsteiger in die Programmierung werden mit den Grundlagen vertraut gemacht und lernen im Laufe des Buchs auf diesen aufzubauen. Erfahrene Programmierer werden feststellen, dass die ersten Kapitel sehr schnell voranschreiten und dass noch jede Menge Stoff in den hinteren Kapiteln folgt, der sogar Veteranen herausfordert. Wie auch immer Ihre Vorkenntnisse sind, am Ende dieses Buches werden Sie Perl beherrschen.

## Wie dieses Buch aufgebaut ist

Dieses Buch ist in 21 Lektionen und drei Wochen eingeteilt. Jede Woche behandelt eine Vielzahl von Themen, die immer komplexer werden und auf den vorherigen Lektionen aufbauen.

Jede Lektion befaßt sich mit einem Thema und enthält zwei oder drei Beispiele, die das Thema illustrieren. Am Ende einer Lektion haben Sie mit einem Quiz und ein paar Übungen die Möglichkeit, Ihr neues Wissen gleich anzuwenden (die Lösungen stehen ebenfalls am Ende jeder Lektion). Am letzten Tag jeder Woche beschäftigen wir uns mit ein paar längeren Beispielen, um die vergangene Woche zu rekapitulieren und zu zeigen, wie größere Skripts aufgebaut sein können.

Folgende Lektionen werden Sie in Perl in 21 Tagen durchnehmen:

Tag 1 »Eine Einführung in Perl«: Die Grundlagen: was Perl ist, was es leistet, wie es funktioniert und wie man anfängt, damit zu arbeiten.

Tag 2 »Mit Strings und Zahlen arbeiten«: Einführung in skalare Daten, die Grundbausteine der Sprache und ein paar einfache Operatoren.

Tag 3 »Weitere Skalare und Operatoren«: Abschluß des Themas von Tag 2, mit detaillierterem Blick darauf, wie man Zahlen und Strings manipuliert. Außerdem eine Einführung in die Ein- und Ausgabe.

Tag 4 »Mit Listen und Arrays arbeiten«: Wie man Daten in Gruppen organisiert und mit diesen umgeht.

Tag 5 »Mit Hashes arbeiten« dehnt das Thema vom Vortag auf Hashes (assoziative Arrays) aus.

Tag 6 »Bedingungen und Schleifen«: Vom Thema Daten gehen wir jetzt zum Thema Programmablauf über. Diese Lektion behandelt Bedingungen (`if`-Anweisungen), Schleifen (`while` und `for`) und ähnliche Konstrukte.

Tag 7 »Ein paar längere Beispiele«: die erste Lektion mit längeren Beispielen. Wir betrachten hier drei Beispiele, die das bisher Gelernte umsetzen.

Tag 8 »Listen und Strings manipulieren« zeigt einige der vielen Möglichkeiten, wie man mit Perl Daten manipulieren kann, die entweder in einer Liste (einem Array oder Hash) oder in einem String gespeichert sind. Dies beinhaltet auch Suchen, Sortieren, Entfernen, Hinzufügen oder bloßes Durchlaufen einer Liste.

Tag 9 »Pattern Matching mit regulären Ausdrücken«: Das erste von zwei Kapiteln, das sich mit einem der stärksten Features von Perl - den regulären Ausdrücken - befaßt, mit denen Sie Zeichenmuster erstellen und in Daten danach suchen können.

Tag 10 »Erweiterte Möglichkeiten regulärer Ausdrücke«: Hier erweitern wir das Wissen von Tag 9 und erfahren mehr darüber, wie man mit Hilfe von Mustern gefundene Daten extrahiert oder ersetzt. Außerdem behandeln wir den Aufbau von komplexeren Mustern.

Tag 11 »Subroutinen erstellen und verwenden«: Wie man Subroutinen (manchmal auch Funktionen oder Prozeduren genannt) erstellt, um Code wiederverwenden zu können.

Tag 12 »Perl-Skripts debuggen«: ein kleiner Exkurs ins Reich der Fehlersuche. In dieser Lektion behandeln wir den Source-Level-Debugger, der Ihnen beim Aufspüren subtiler Probleme in Ihrem Code behilflich ist.

Tag 13 »Gültigkeitsbereiche, Module und das Importieren von Code«: verschiedene Punkte zu globalen und lokalen Variablen, Kompilierzeit versus Ausführungszeit, Gebrauch von Code-Bibliotheken und Aufruf von Modulen.

Tag 14 »Ein paar längere Beispiele«: die zweite Lektion mit Beispielen.

Tag 15 »Dateien und E/A« baut auf den einfachen Ein- und Ausgabe-Routinen auf, die Sie bisher kennengelernt haben. Sie erfahren, wie Sie mit Dateien auf dem Dateisystem Ihres Computers arbeiten und wie Sie in Ihren Skripts Eingaben einlesen und Daten ausgeben.

Tag 16 »Perl für CGI-Skripting«: Sie erfahren, wie Sie mit Perl Webserver-basierte CGI-Skripts schreiben.

Tag 17 »Umgang mit Dateien und Verzeichnissen« vertieft die Lektion über die Ein- und Ausgabe von und in Dateien. Diese Lektion behandelt die Arbeit mit dem Dateisystem, inklusive dem Navigieren in Verzeichnishierarchien und dem Umbenennen und Ersetzen von Dateien.

Tag 18 »Perl und das Betriebssystem« behandelt verschiedene betriebssystemspezifische Eigentümlichkeiten von Perl. Perl wurde in erster Linie für Unix entwickelt und ist weiterhin Unix-zentriert. Die Windows- und Mac-Versionen von Perl enthalten Bibliotheken, die bestimmte Eigenschaften dieser Plattformen nutzen können. Damit befaßt sich diese Lektion.

Tag 19 »Mit Referenzen arbeiten« behandelt eines der anspruchsvolleren Konzepte von Perl - die Verwendung von Referenzen, die effizienteres Datenmanagement und komplexere verschachtelte Strukturen ermöglichen.

Tag 20 »Was noch bleibt«: zum Schluß eine Zusammenfassung der wenigen Konzepte von Perl, die bisher noch nicht behandelt wurden.

Tag 21 »Ein paar längere Beispiele«: die letzte Lektion mit Beispielen.

## In diesem Buch verwendete Konventionen

Quelltext wird in diesem Buch in einer Festpunktschrift dargestellt:

    das sieht dann so aus

Text, den Sie auf Betriebssystemebene eintippen sollen, ist in fetter Festpunktschrift dargestellt:

    tippen Sie Ihren Text ein, der so aussieht

Auch im normalen Text werden Variablen und Ausdrücke in `Festpunktschrift` geschrieben.

> Ein Hinweis beschreibt interessante, manchmal technische Details zum aktuellen Thema.

> Ein Tipp zeigt, wie etwas einfacher geht.

> Eine Warnung warnt Sie vor möglichen Problemen. Sie sollen schließlich ohne große Probleme durch dieses Buch kommen.

© Markt&Technik Verlag, ein Imprint der Pearson Education Deutschland GmbH