SELFHTML: Perl / Perl lokal auf einem PC einrichten
Author: Redaktion SELFHTML, selfhtml81@selfhtml.org
Description: Wie Sie den Perl-Interpreter auf Ihrem Rechner installieren, um CGI-Scripts mit Perl auszutesten.
Keywords: SELFHTML, CGI, Perl, Perl-Interpreter
Date: 2005-11-09T00:29:27+01:00

| # Einführung in Perl
| Der Perl-Interpreter Perl-Interpreter installieren Perl-Interpreter mit CGI-Script testen Aufrufmöglichkeiten des Perl-Interpreters Erste Zeile eines Perl-Scripts Anweisungen notieren Anweisungsblöcke notieren Kommentare in Perl Regeln für selbst vergebene Namen Sauberer Programmierstil

## Der Perl-Interpreter

Der Perl-Interpreter ist freie Software nach dem Recht der Artistic License ( http://www.perl.com/language/misc/Artistic.html) und für etliche Betriebssysteme verfügbar. Außerdem ist der Quellcode des Interpreters verfügbar, sodass Sie ihn, wenn Sie einen C-Compiler haben, für Ihren Rechner compilieren können. Sie können den Perl-Interpreter aus dem WWW downloaden.

Im Link-Verzeichnis des Online-Angebots von SELFHTML aktuell finden Sie weitere Links zu den Downloadmöglichkeiten des Perl-Interpreters:

SELFHTML-Linkverzeichnis: Perl

Für Windows-Anwender ist das Angebot ActivePerl von ActiveState zu empfehlen, da es sehr einfach zu installieren ist und die umfangreiche Perl-Originaldokumentation im HTML-Format zum Lesen im Browser mitgeliefert wird.

## Perl-Interpreter installieren

Je nach Betriebssystemumgebung müssen Sie den Perl-Interpreter manuell installieren, oder ein automatisch aufgerufenes Installationsprogramm führt für Sie alle nötigen Kopiervorgänge und Einstellungen durch. Wenn es kein ausführbares Installationsprogramm gibt, finden Sie nach dem Entpacken des heruntergeladenen Sourcen-Archivs auf jeden Fall Hilfedateien vor, in denen beschrieben wird, wie der Interpreter zu installieren ist.

Wenn Sie den Perl-Interpreter für die CGI-Schnittstelle Ihres eigenen Webservers nutzen wollen, müssen Sie beim Einrichten des eigenen WWW-Servers je nach Betriebssystemumgebung und Server-Software eventuell den vollständigen Pfadnamen der ausführbaren Perl-Interpreter-Datei angeben. Nach einer typischen Installation des Perl-Interpreters liegt diese im Programmunterverzeichnis bin und heißt perl oder (unter Windows) perl.exe.

## Perl-Interpreter mit CGI-Script testen

Wenn Sie einen lokalen Webserver installiert und in dessen Einstellungen ein CGI-Verzeichnis bestimmt haben, können Sie nach der Installation des Perl-Interpreters Ihr erstes eigenes lokales CGI-Script ausführen. Den Quellcode des folgenden Perl-Scripts können Sie mit einem Texteditor im eingestellten CGI-Verzeichnis beispielsweise unter dem Namen test.pl abspeichern. Angenommen, Ihr CGI-Verzeichnis heißt wie üblich cgi-bin und der Webserver ist gestartet, dann können Sie das Script im Browser mit der Adresse http://127.0.0.1/cgi-bin/test.pl oder auch mit der Adresse http://localhost/cgi-bin/test.pl aufrufen.

### Beispiel: Datei test.pl

Anzeigebeispiel: So sieht's aus (Zum Aufruf des Scripts ist eine Internet-Verbindung erforderlich)

    #!/usr/bin/perl -w

    use strict;

    print "Content-type: text/html\n\n";
    print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
    print "<html><head><title>Test-Ausgabe</title></head><body>\n";
    print "<h1>Hurra, es klappt!</h1>\n";
    print "</body></html>\n";

### Erläuterung:

Das Script gibt, wenn es aufgerufen wird, einfach ein wenig HTML-Code aus. Auf die Perl-Anweisungen wird an dieser Stelle noch nicht näher eingegangen. Nur die erste Zeile des Scripts (die so genannte shebang) müssen Sie möglicherweise anpassen. Dort, wo im Beispiel `#!/usr/bin/perl` steht, müssen Sie, falls Sie beim Aufruf eine Fehlermeldung wie Internal Server Error erhalten, den kompletten Pfad zur ausführbaren Datei, also zum Perl-Interpreter, angeben. Wenn Sie den Perl-Interpreter unter Windows beispielsweise in c:\programme\perl installiert haben, lautet Ihre erste Script-Zeile also:
`#!c:/programme/perl/bin/perl`
Die Dateinamen-Erweiterung .exe können Sie ohne weiteres weglassen.

## Aufrufmöglichkeiten des Perl-Interpreters

Um eigene Perl-Scripts auszuführen bzw. zu testen müssen Sie den Perl-Interpreter installiert haben. Um Perl als Sprache für CGI-Scripts einzusetzen, muss außerdem ein Webserver installiert sein.

Bei CGI-Scripts fordert der aufrufende Browser vom Webserver über HTTP eine Datei an, die der Webserver als auszuführendes Script erkennt. Um zu erfahren, ob die vom Browser angeforderte Datei ein auszuführendes CGI-Script ist, prüft der Webserver verschiedene Kriterien:

- Das Script liegt in einem Verzeichnis, das aus Sicht des Webservers als mögliches Verzeichnis für CGI-Scripts definiert ist (z.B. cgi-bin und dessen Unterverzeichnisse).
- Bei der Scriptdatei sind die Zugriffsrechte so gesetzt, dass der Benutzer, unter dem der Webserver läuft, das Recht hat, die Datei auszuführen. Dies gilt vor allem für Unix-basierte Systeme.
- Die Scriptdatei hat eine Dateiendung, die vom System als Endung für Perl-Scripts erkannt wird, z.B. .pl oder .cgi.
- Die erste Zeile des Perl-Scripts enthält eine so genannte "Shebang"-Anweisung (Slang, auszusprechen als schibäng). Diese Anweisung ist für einen auslesenden Prozess (das kann ein Serverprogramm sein oder eine Shell) der Hinweis darauf, welches Programm für die Interpretation des Quelltextes dieser Scriptdatei aufgerufen werden soll. Siehe auch Erste Zeile eines Perl-Scripts.

Diese Faktoren bewirken, dass, wenn der Browser ein Perl-Script im CGI-Verzeichnis aufruft, der Webserver entsprechend reagiert und den Quelltext des Scripts nicht einfach an den Browser sendet, sondern den Perl-Interpreter bittet, die im CGI-Script enthaltenen Anweisungen auszuführen und das Ergebnis an ihn zur Auslieferung an den Browser zurückzugeben.

Perl ist ursprünglich nicht für CGI-Scripts entwickelt worden, sondern dafür, in einem Unix-basierten System komplexe Installations-, Wartungs- und Informationsaufgaben zu erfüllen. Dass es auch über die CGI-Schnittstelle angesprochen werden kann, war in seiner Entwicklung eher ein zufälliger Nebeneffekt. Perl-Scripts können also zahllose Aufgaben auf einem Rechner übernehmen, z.B. Backups organisieren, die Rechnerauslastung analysieren, in Dateien nach etwas suchen und es durch etwas anderes ersetzen usw. Um Perl-Scripts auszuführen, die nicht als CGI-Scripts eingesetzt werden, müssen Sie einen Zugang zu einer Shell oder Kommandozeile auf dem Rechner haben. Am lokalen PC und unter Windows können Sie ein DOS-Fenster (Eingabeaufforderung) öffnen. Dann können Sie den Perl-Interpreter vom Prompt aus aufrufen. Bei Unix-basierten Systemen benötigen Sie einen Zugang als Benutzer. Nach dem Anmelden am System erhalten Sie eine Shell, also eine benutzereigene Kommandozeile. Von dort aus können Sie den Perl-Interpreter aufrufen, vorausgesetzt, Sie haben die Rechte dazu. Wenn Sie Perl-Scripts über die Kommandozeile auf einem entfernten Rechner ausführen wollen, also etwa auf einem öffentlichen Server, auf dem Sie Web-Speicherplatz gemietet haben, dann brauchen Sie einen Telnet- oder SSH-Zugang zu diesem Rechner. Außerdem benötigen Sie ein Telnet- oder SSH-Programm (im Online-Angebot des SELFHTML-Linkverzeichnisses finden Sie WWW-Links zu Telnet- und SSH-Programmen). Mit einem solchen Programm können Sie sich aus der Ferne an einem Rechner anmelden und erhalten eine Shell zum Eingeben von Kommandos. Fragen Sie gegebenenfalls Ihren Provider danach, ob Sie Telnet- oder SSH-Zugang zum Server haben!

Von der Kommandozeile aus können Sie den Perl-Interpreter mit einem Perl-Script, also einer Datei mit Perl-Code, aufrufen. Solche Dateien haben die Standard-Dateinamenendung .pl. Der Perl-Interpreter wird normalerweise einfach durch Eingabe von `perl` gestartet. Wenn Sie beispielsweise ein Perl-Script namens hallowelt.pl haben, können Sie dieses Script mit `perl hallowelt.pl` starten. Gegebenenfalls müssen Sie sowohl den Perl-Interpreter als auch das Perl-Script mit den korrekten Pfadnamen aufrufen, unter Windows also z.B. `c:\programme\perl\bin\perl.exe c:\scripts\perl\hallowelt.pl`, unter Unix-basierten Systemen z.B. `/usr/bin/perl /scripts/perl/hallowelt.pl`.

Neben der reinen Angabe einer Perl-Datei gibt es Optionen beim Aufruf des Perl-Interpreters. Die Optionen folgen unmittelbar hinter dem Programmdateinamen und vor dem Namen des Perl-Scripts, also etwa `perl -c test.pl`. Sie können auch mehrere Optionen aneinanderhängen. Notieren Sie dazu nur ein Minuszeichen mit allen gewünschten Optionsbuchstaben hintereinander, z.B. `perl -cwT test.pl`. Auf Unix-basierten Systemen können Sie bei Bedarf zusätzlich so genannte pipelines nutzen.

Die folgende Tabelle enthält einige Optionen, die beim Aufruf des Perl-Interpreters Anwendung finden können.

Option | Bedeutung
--- | ---
`-c` | Das Perl-Script wird nicht ausgeführt, sondern nur in einen perl-internen Syntaxbaum kompiliert und so auf syntaktische Richtigkeit überprüft.
`-d` | Das Perl-Script wird im Debug-Modus ausgeführt. Der Debug-Modus erlaubt das systematische Austesten des Perl-Scripts. Im Debug-Modus stehen etliche Befehle zum Kontrollieren und Überprüfen des Script-Ablaufs bereit.
`-h` | Wenn Sie Perl mit dieser Option ohne Angabe eines Scripts aufrufen, gibt der Perl-Interpreter eine Übersicht aller verfügbaren Optionen aus.
`-S` | Das Script braucht nur als Dateiname ohne Pfad angegeben zu werden. Wenn es in einem der Verzeichnisse liegt, die in der PATH-Variablen des Betriebssystems genannt sind, findet der Perl-Interpreter das Script auch ohne Pfadangabe.
`-T` | Das Script wird im so genannten "tainted"-Modus ausgeführt. Das heißt, alle Daten, die das Perl-Script von außen bekommt, werden vom Perl-Interpreter besonders gekennzeichnet und müssen vom Script bei kritischen Operationen speziell bearbeitet werden, bevor sie benutzt werden können.
`-v` | Gibt die Version und den genauen Stand des Perl-Interpreters aus.
`-w` | Bewirkt, dass der Perl-Interpreter nicht nur offensichtliche Fehlermeldungen bei Syntaxfehlern ausgibt, sondern auch Warnungen bei möglichen Fehlern, logisch zweifelhaften Anweisungsfolgen, undefinierten Zuweisungen usw.

## Erste Zeile eines Perl-Scripts

In der ersten Zeile eines Perl-Scripts, der so genannten "Shebang-Zeile", muss eine Anweisung stehen, die angibt, wo sich die ausführbare Datei des Perl-Interpreters befindet.

### Beispiel eines vollständigen Perl-Scripts:

Anzeigebeispiel: So sieht's aus (Zum Aufruf des Scripts ist eine Internet-Verbindung erforderlich)

    #!/usr/bin/perl
    print "Hallo Welt\n";

### Erläuterung:

Die Anweisung zur Lage des Perl-Interpreters auf dem Rechner beginnt mit den Zeichen `#!`, der so genannten shebang, gefolgt von der Pfadangabe und dem Namen des Perl-Interpreters. Ab der zweiten Zeile können Sie Perl-Code notieren, wie im Beispiel die Ausgabe der beiden Wörter `Hallo Welt`.

Die Anweisung zur Lage des Perl-Interpreters auf dem Rechner wird vor allem von Unix-basierten Systemen ausgewertet, und zwar dann, wenn die Perl-Datei auf den Modus "ausführbar" gesetzt ist. Die Datei kann dann direkt aufgerufen werden und startet den Perl-Interpreter. Wenn Sie unter anderen Umgebungen als Unix arbeiten, notieren Sie einfach die übliche Zeile mit der üblichen Pfadangabe (`#!/usr/bin/perl`) in der ersten Zeile Ihres Perl-Scripts. Sollte das Script dann nicht ausgeführt werden bzw. eine Fehlermeldung produzieren, notieren Sie den genauen Pfad der ausführbaren Datei des Perl-Interpreters. Trennen Sie dabei die Verzeichnisse durch einfache Schrägstriche. Eine typische Angabe unter Windows ist beispielsweise
`#!C:/programme/perl/bin/perl.exe`.

### Beachten Sie:

Bei Webservern mit CGI-Unterstützung hängt es vom Webserver-Produkt ab, ob die Zeile für die Lage des Perl-Interpreters ausgelesen wird. Zu den Grundeinstellungen eines Webservers gehört mittlerweile auch die Angabe des Pfades zum Perl-Interpreter. Wenn dann bei laufendem Webserver ein Perl-Script über das HTTP-Protokoll ausgeführt wird, ruft der Webserver den Perl-Interpreter entsprechend seiner Konfiguration auf.

Wenn der Perl-Interpreter im Suchpfad für ausführbare Programme liegt, der z.B. in der Umgebungsvariablen PATH gespeichert ist, dann genügt es, in der ersten Zeile des Perl-Scripts zu notieren:
`#!perl`

Wenn Ihr Webserver ein Apache ist und Sie uneingeschränkten Zugang zu seiner Konfigurationsdatei (httpd.conf) haben, können Sie dort auch die Anweisung `ScriptInterpreterSource registry` notieren. Eine solche Anweisung bewirkt, dass Apache in der Windows-registry nach dem Pfad sucht, mit dem der Perl-Interpreter angesprochen werden kann und die "shebang" umgeht. Das funktioniert jedoch nur dann, wenn in der registry unter HKEY_CLASSES_ROOT eine entsprechende Dateinamensendung, beispielsweise .pl, eingetragen ist und für diese Dateinamensendung auch ein Schlüssel `Shell\ExecCGI\Command` oder `Shell\Open\Command` existiert. Ist kein solcher Schlüssel vorhanden, wird zuletzt auf die "shebang" zurückgegriffen, und wenn dort dann ein nicht zutreffender Pfad eingetragen ist, erfolgt eine Fehlermeldung an den aufrufenden Browser.

Hinter der Pfadangabe zum Perl-Interpreter kann, durch Leerraum getrennt, auch noch eine Aufrufoption folgen wie in der Tabelle bei den Aufrufmöglichkeiten des Perl-Interpreters beschrieben. So können Sie beispielsweise notieren:
`#!/usr/bin/perl -w`
Damit weisen Sie den Perl-Interpreter an, neben Fehlern auch Warnungen zu melden. Diese Option wird von Perl-Programmierern gerne empfohlen (siehe auch Sauberer Programmierstil).

## Anweisungen notieren

Perl-Scripts bestehen, wie die Scripts anderer Programmiersprachen auch, aus einer kontrollierten Anordnung von Anweisungen. Das sind Befehle, die der Perl-Interpreter bewertet und in einen Maschinencode übersetzt (kompiliert), der auf dem betreffenden Rechner ausführbar ist.

Es gibt einfache und komplexere Anweisungen.

### Beispiel eines vollständigen Perl-Scripts:

Anzeigebeispiel: So sieht's aus (Zum Aufruf des Scripts ist eine Internet-Verbindung erforderlich)

    #!/usr/bin/perl

    $Zahl = 42;
    $Quadrat = $Zahl * $Zahl;
    print "Das Quadrat von ", $Zahl, " = ", $Quadrat, "\n";

### Erläuterung:

Eine Anweisung besteht in Perl aus einem Befehl, der normalerweise mit einem Semikolon `;` abgeschlossen wird. Der Befehl kann an verschiedene Bedingungen gebunden sein.

Eine Anweisung ist es zum Beispiel:

- wenn Sie einer Variablen einen Wert zuweisen, wie oben in Beispiel in der Anweisung `$Zahl = 42;`.
- wenn Sie mit Variablen oder Werten eine Operation durchführen, wie oben in der zweiten Anweisung.
- wenn Sie eine Perl-Funktion aufrufen, wie oben in der dritten Anweisung die Funktion `print`.

## Anweisungsblöcke notieren

Ein Anweisungsblock besteht aus einer oder mehreren einzelnen Anweisungen, die innerhalb einer übergeordneten Anweisung stehen. So können Anweisungsblöcke beispielsweise innerhalb einer bedingten Anweisung oder innerhalb einer Schleife stehen. Auch alle Anweisungen, die innerhalb einer Subroutine stehen, bilden einen Anweisungsblock.

### Beispiel 1:

    if($Zahl > 1000) {
      $Zahl = 0;
    }

### Beispiel 2:

    for(my $i = 1;$i <= 99;$i = $i + 1) {
      print "Das Quadrat von ", $i, " ist ", $i * $i, "\n";
    }

### Erläuterung:

Ein Anweisungsblock wird durch eine öffnende geschweifte Klammer `{` begonnen und durch eine schließende geschweifte Klammer `}` beendet.

Bei bedingten Anweisungen (wie in Beispiel 1) oder bei Schleifen (wie in Beispiel 2) müssen Sie solche Anweisungsblöcke notieren, auch wenn nur eine einzige Anweisung von der Bedingung oder der Schleifenbedingung abhängig ausgeführt werden soll.

Anweisungsblöcke können auch verschachtelt werden.

## Kommentare in Perl

Wie jede bessere Programmiersprache erlaubt Perl das Notieren von Kommentaren. Kommentare werden nicht als Code interpretiert, sondern erläutern das Script oder machen den Code für den Programmierer besser lesbar.

### Beispiel:

    #=========================================
    # es folgt die Ausgabe der Quadratzahlen
    # von 1 bis 99
    #=========================================
    for(my $i = 1;$i <= 99;$i = $i + 1) {
      # Hier wird das Quadrat der Zahlen ausgegeben
      print "Das Quadrat von ", $i, " ist ", $i * $i, "\n";
    }

### Erläuterung:

Kommentare in Perl beginnen mit einem Gatterzeichen `#`. Alles, was hinter dem Gatterzeichen bis zum Ende der Zeile steht, wird von Perl ignoriert. Beginnt eine Zeile mit dem Gatterzeichen, ist die gesamte Zeile ein Kommentar. Viele Perl-Programmierer nutzen die Kommentartechnik auch, um ihre Scripts optisch kunstvoll zu gestalten. Das obige Beispiel zeigt solch ein optisches Konstrukt mit Gleichheitszeichen.

### Beachten Sie

Neben der einfachen Auskommentierung besteht auch die Möglichkeit, größere Abschnitte des Scripts als Dokumentation auszuweisen. Solche Dokumentationen können mit dem Programm perldoc, das zum Lieferumfang des Perl-Interpreters gehört, separat gelesen werden. Bei komplexeren Scripts können Sie so die Dokumentation gleich zum Script mit dazuliefern. Im Zusammenhang mit Modulen wird im Abschnitt Moduldokumentationen lesen mit perldoc beschrieben, wie solche Abschnitte aussehen. Was dort für Module beschrieben wird, funktioniert in jedem Perl-Script.

## Regeln für selbst vergebene Namen

An vielen Stellen in Perl müssen Sie selbst Namen vergeben, zum Beispiel für Variablen wie Skalare, Arrays oder Hashes, sowie für Subroutinen.

### Beispiel:

    my $Daten = $ENV{'QUERY_STRING'};

### Erläuterung:

Im Beispiel ist `Daten` ein selbst vergebener Name. Bei selbst vergebenen Namen gelten folgende Regeln:

- Sie dürfen keine Leerzeichen enthalten.
- Sie müssen mit einem Buchstaben oder einem Unterstrich `_` beginnen. Mit einer Ziffer oder einem anderen Zeichen dürfen sie nicht beginnen.
- Es sind Groß- und Kleinbuchstaben erlaubt. Groß- und Kleinschreibung wird aber auch unterschieden. Das heißt, zwei Variablennamen wie `$user` und `$User` bezeichnen unterschiedliche Variablen!
- Sie dürfen keine deutschen Umlaute oder scharfes S enthalten, nur die Buchstaben A bis Z und a bis z und die Ziffern 0 - 9.
- Sie dürfen Unterstriche `_` enthalten.

Vergeben Sie sprechende Namen, die Ihnen auch ein halbes Jahr, nachdem Sie das Perl-Script geschrieben haben, noch signalisieren, welche Bedeutung sie haben. Es dürfen ruhig auch deutschsprachige Wörter sein, solange die genannten Regeln eingehalten werden.

### Beachten Sie:

Seit Perl-Version 5.6.0 können Perl-Scripts auch in Unicode notiert werden. Damit ist es möglich, auch beispielsweise Umlaute in Variablennamen zu verwenden. Die Perl-Scripts müssen dann UTF-8-kodiert sein. In einem Editor, der diese Kodierung nicht beherrscht, sieht dann eine Variable `$Straße` beispielsweise so aus: `$StraÃŸe`

## Sauberer Programmierstil

Es gibt ein paar Dinge, die ein sauber geschriebenes Perl-Script enthalten sollte. Ohne diese Dinge funktionieren die meisten Perl-Scripts zwar genauso gut, aber kritische (mehrdeutige) Anweisungen im Quelltext fallen dann nicht auf und können leichter zu Fehlern führen. Das folgende kleine Perl-Script enthält ein paar Dinge, die von Perl-Programmierern zum sauberen Programmieren empfohlen werden.

### Beispiel eines vollständigen CGI-Scripts in Perl:

Anzeigebeispiel: So sieht's aus (Zum Aufruf des Scripts ist eine Internet-Verbindung erforderlich)

    #!/usr/bin/perl -w

    use strict;
    use CGI::Carp qw(fatalsToBrowser);

    my $headline = "Ein sauberes Script!";

    print "Content-type: text/html\n\n";
    print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
    print "<html><head><title>Test</title></head><body>\n";
    print "<h1>$headline</h1>\n";
    print "<p>nur auf das CGI-Modul wurde hier verzichtet ;-)</p>\n";
    print "</body></html>\n";

### Erläuterung:

Zu den empfohlenen Maßnahmen sauberer Programmierung zählt auf jeden Fall die Verwendung der Aufrufoption `-w` in der ersten Zeile des Scripts. Dadurch gibt der Perl-Interpreter Warnungen zu zweifelhaften Befehlen aus, bevor er das Script ausführt. Manche Unsauberkeiten im Quellcode werden so ohne zeitraubende Suche erkannt.

In die gleiche Richtung zielt die Anweisung `use strict;`. Damit wird ein spezielles Pragma-Modul eingebunden, das bewirkt, dass der Perl-Interpreter keine unsicheren Konstrukte akzeptiert, bevor er das Script ausführt. Das können zum Beispiel nicht definierte Variablen sein. Auch damit lassen sich Fehler vermeiden, die durch unachtsames oder schlampiges Programmieren entstehen können und bei einer toleranteren Interpretation des Quelltextes nicht auffallen.

Die Anweisung `use CGI::Carp qw(fatalsToBrowser);` wird Programmierern, die Perl-Scripts für die CGI-Schnittstelle entwickeln wollen, dringend empfohlen. Sie bindet eine Funktion eines speziellen Modul ein, das beim ungewollten Abbruch des Scripts aufgrund eines Syntaxfehlers oder einer Anweisung wie die die Fehlerursache in HTML umwandelt und direkt auf die Standardausgabe schreibt, also an den aufrufenden Browser übergibt. Auf diese Weise ersparen es sich CGI-Programmierer, beim Scriptabbruch in der meist langen Error-Log-Datei des Webservers nach der Fehlermeldung zu suchen. Diese Anweisung nutzt jedoch nichts, wenn bereits Fehler auftreten, bevor der Perl-Interpreter ausgeführt werden kann, also etwa, wenn die erste Zeile des Perl-Scripts eine falsche Lage des Perl-Interpreters ausweist.

Wenn Sie `use strict;` angeben, zwingt Perl Sie dazu, alle Ihre Variablen vor der ersten Verwendung zu deklarieren (z.B. mit `my`). Im obigen Beispiel ist dies bei der Initialisierung von `$headline` der Fall. Dies hat den Vorteil, dass ein Programmabbruch erfolgt, wenn Sie im weiteren Verlauf des Scripts einen Variablennamen falsch geschrieben haben. Die Verwendung von `my` bewirkt, dass eine Variable nur in der aktuellen Datei oder im aktuellen Anweisungsblock gültig ist. Näheres dazu bei der Beschreibung des Befehls my.

Wie Sie dem Quellcode des obigen Beispiels entnehmen können, gibt das Script in seiner Ausgabe an den aufrufenden Browser mit einem verschmitzten Lächeln zu, dass es das CGI-Modul nicht verwendet. Tatsächlich sollten Sie sich, wenn Sie CGI-Scripts schreiben wollen, mit diesem Modul und seiner Syntax beschäftigen. Es hält für viele CGI-Scripts nützliche Funktionen bereit und soll an dieser Stelle ausdrücklich empfohlen werden.

Generell ist es empfehlenswert, auf vorhandene und bewährte Ressourcen zurückzugreifen. Perl wird ja nicht nur alleine als Perl-Interpreter ausgeliefert, sondern mit einer ganzen Reihe von fertigen Modulen, die viele Programmieraufgaben erleichtern und die möglichen Fehlerquellen verringen. Nachdem Sie sich mit den Sprachelementen und eingebauten Funktionen von Perl etwas vertraut gemacht haben, sollten Sie sich daher auf jeden Fall auch mit den Perl-Modulen beschäftigen.

Bei größeren Scripts sollten Sie den Quellcode auf Subroutinen verteilen. Mit dieser Technik können Sie Anweisungsblöcke definieren, die bestimmte Aufgaben übernehmen und von verschiedenen anderen Stellen im Script aus aufgerufen werden können. Ferner können Sie die Technik der Subroutinen dazu nutzen, um den Script-Ablauf in Teilprozeduren zu zerlegen und nur bestimmte Teile des Scripts auszuführen.

Seit Version 5 des Interpreters erlaubt Perl auch objektorientiertes Programmieren. Das ist zwar für Neulinge zunächst erheblich schwieriger zu begreifen, aber wenn man es sich angewöhnt, werden größere Anwendungen in Perl letztlich einfacher zu programmieren sein, und der Code sieht deutlich besser (menschen-)lesbar aus. Dem Perl-Interpreter ist es eigentlich egal; objektorientierte Programmierung kann die Ausführung Ihrer Scripts jedoch teilweise erheblich beschleunigen.

Zum "sauberen Programmieren" gehören schließlich folgende allgemeine Empfehlungen:

- Kommentieren Sie alle nicht-trivialen Anweisungen oder Anweisungsblöcke Ihres Scripts. Sie sollten allerdings darauf achten, dass Sie auch nicht zu viel kommentieren. Ein Script, in dem auf eine Code-Zeile zehn Zeilen Kommentar kommen, ist schlecht lesbar.
- Notieren Sie den Quelltext so, dass er übersichtlich wirkt. Dazu gehören Leerzeilen zwischen logischen Abschnitten im Script sowie Einrückungen, die vor allem bei Anweisungsblöcken erkennen lassen, was zum Anweisungsblock gehört und was außerhalb davon steht. Vor allem sollte die schließende geschweifte Klammer eines Blocks in der gleichen Textspalte stehen wie das erste Zeichen des Wortes, das den Block einleitet.
- Verwenden Sie ein einheitliches Schema bei der Namensvergabe. Es sieht besser aus, wenn eine Reihe von Variablen die Namen `$name`, `$telephone`, `$mail` und `$homepage` haben, als wenn diese `$name`, `$Telefonnummer`, `$mail_Adresse` und `$Homepage` lauten.

| CGI-notwendige Anweisungen in Perl
| Bilderbuch zum Umblättern

© 2007 Impressum