Perl/Einführung

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[Bearbeiten] Die Perl-Distribution

Die Perl-Distribution ist freie Software nach der GNU General Public License Version 1 (oder später), oder der ursprünglichen Version der Artistic License und für etliche Betriebssysteme verfügbar. Der Quelltext ist verfügbar, sodass Sie ihn, wenn Sie einen C-Compiler haben, für Ihren Rechner kompilieren können. Sie können die Perl-Distribution aus dem Internet herunterladen.

Für Windows-Anwender existieren zwei recht weit verbreitete Perl-Distributionen. ActivePerl von ActiveState ist einfach zu installieren, jedoch lassen sich hier zusätzliche Module häufig nicht oder nur schwer installieren. Eine Open-Source-Alternative, die auch das CPAN besser einbindet, ist Strawberry Perl.

[Bearbeiten] Perl-Distribution installieren

Je nach Betriebssystemumgebung ist Perl bereits vorhanden, ansonsten müssen Sie die Perl-Distribution 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 Quelltextarchivs auf jeden Fall Hilfedateien vor, in denen beschrieben wird, wie die Distribution zu installieren ist.

Wenn Sie Perl für die CGI-Schnittstelle Ihres eigenen Webservers nutzen wollen, müssen Sie bei dessen Einrichten je nach Betriebssystemumgebung und Serversoftware 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.

[Bearbeiten] Perl mit CGI-Programm testen

Wenn Sie einen lokalen Webserver installiert und in dessen Einstellungen ein CGI-Verzeichnis bestimmt haben, können Sie nach der Installation der Perl-Distribution Ihr erstes eigenes lokales CGI-Programm ausführen. Den Quellcode des folgenden Perlprogramms 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 Programm im Browser mit der Adresse http://127.0.0.1/cgi-bin/test.pl oder auch http://localhost/cgi-bin/test.pl aufrufen.

Beispiel: Datei test.pl:
#!/usr/bin/env perl
use strict;
use warnings;
 
print <<END;
Content-type: text/html
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Test-Ausgabe</title></head><body>
<h1>Hurra, es klappt!</h1>
</body></html>
END

Das Programm gibt, wenn es aufgerufen wird, einfach ein wenig HTML-Code aus. Die Perl-Anweisungen sind für den Augenblick noch nicht weiter interessant. Nur die erste Zeile des Programm (die so genannte Shebang, englisch, auszusprechen als schiebäng) müssen Sie möglicherweise anpassen. Das wird im Abschnitt #Erste Zeile eines Perl-Programms näher erläutert. Falls Sie beim Aufruf eine Fehlermeldung wie 500 - Internal Server Error erhalten, sollten Sie im Error-Log des Webservers nachschauen, denn dort findet sich üblicherweise eine aussagekräftigere Meldung. Eine Ursache kann auch sein, dass die Script-Datei kein Ausführen-Recht bekommen hat.

[Bearbeiten] Aufrufmöglichkeiten des Perl-Interpreters

Bei CGI-Programmen fordert der aufrufende Browser vom Webserver über HTTP eine Ressource an, die der Webserver bei geeigneter Serverkonfiguration als auszuführendes Programm erkennt. Um zu erfahren, ob die vom Browser angeforderte Ressource ein auszuführendes CGI-Programm ist, prüft der Webserver verschiedene Kriterien:

  • Die Ressource kann als Datei in einem Verzeichnis geortet werden, das durch den Webserver als CGI-Verzeichnis für CGI-Programme definiert ist. CGI-Verzeichnisse heißen oft cgi-bin oder cgi.
  • Bei der Programmdatei 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 Programmdatei hat eine Dateiendung, die vom Server als Endung für Perl-Programme erkannt wird (z.B. .pl oder .cgi).
  • Die erste Zeile des Perl-Programms enthält (für Unix-Systeme) eine so genannte "Shebang". Diese Anweisung enthält für den Server den Pfad zum Perl-Interpreter.

Diese Faktoren bewirken, dass bei einem Aufruf eines Perl-Programms im CGI-Verzeichnis der Webserver entsprechend reagiert und den Quelltext des Programms nicht einfach an den Browser sendet, sondern den Perl-Interpreter bittet, die im CGI-Programm enthaltenen Anweisungen auszuführen und das Ergebnis an ihn zur Auslieferung an den Browser zurückzugeben.

Perl ist ursprünglich dafür entwickelt worden, in einem Unix-basierten System komplexe Aufgaben im Bereich der Textauswertung und Systemadministration zu erfüllen. Perl-Programme können 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-Programme auszuführen, die nicht als CGI-Programm 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 eine Eingabeaufforderung (DOS-Fenster) ö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-Programme ü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-Programm, also einer Datei mit Perl-Quelltext, aufrufen. Solche Dateien haben die Standard-Dateinamensendung .pl. Der Perl-Interpreter wird normalerweise einfach durch Eingabe von perl gestartet. Wenn Sie beispielsweise ein Perl-Programm namens hallowelt.pl haben, können Sie dieses Programm mit perl hallowelt.pl starten. Gegebenenfalls müssen Sie sowohl den Perl-Interpreter als auch das Perl-Programm mit den korrekten Pfadnamen aufrufen, unter Windows also z.B. c:\programme\perl\bin\perl.exe c:\code\perl\hallowelt.pl, unter Unix-basierten Systemen z.B. /usr/bin/perl /home/benutzer/code/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-Programms, 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.

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

Option Bedeutung
-c Das Perl-Programm wird nicht ausgeführt, sondern nur in einen Perl-internen Syntaxbaum kompiliert und so auf syntaktische Richtigkeit überprüft.
-d Das Perl-Programm wird im Debug-Modus ausgeführt. Dieser erlaubt das systematische Testen des Perl-Programms. Im Debug-Modus stehen etliche Befehle zum Kontrollieren und Überprüfen des Programmablaufs bereit.
-h Wenn Sie Perl mit dieser Option ohne Angabe eines Programms aufrufen, gibt der Perl-Interpreter eine Übersicht aller verfügbaren Optionen aus.
-S Das Programm 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 Programm auch ohne Pfadangabe.
-T Im Programm verursachen fehlgeschlagene Taint-Überprüfungen einen Programmabbruch. Das heißt, alle Daten, die das Perl-Programm von außen bekommt, werden vom Perl-Interpreter besonders gekennzeichnet und müssen vom Programm bei kritischen Operationen speziell bearbeitet werden, bevor sie benutzt werden können. Dies dient zum Schutz vor Einschleusung fremder Daten.
-v Gibt die Version 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. Die Benutzung des Pragmas warnings ist dieser Option vorzuziehen.

[Bearbeiten] Erste Zeile eines Perl-Programms

In der ersten Zeile eines Perl-Programms, der so genannten „Shebang-Zeile“, muss unter Umständen eine Anweisung stehen, die angibt, wo sich die ausführbare Datei des Perl-Interpreters befindet.

Beispiel: Shebang
#!/usr/bin/env perl
print "Hallo Welt\n";

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 für die Perl-Datei das Recht „ausführbar“ (x, executable) gesetzt ist. Die Datei kann dann direkt aufgerufen werden und startet den Perl-Interpreter. Wenn Sie unter anderen Umgebungen als Unix (außer Windows) arbeiten, notieren Sie einfach die übliche Zeile mit der üblichen Pfadangabe (#!/usr/bin/perl) in der ersten Zeile Ihres Perl-Programms. Sollte das Programm 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.

Das obige Beispiel verwendet eine alternative Methode. Da sich der Perl-Interpreter je nach Installation an unterschiedlichen Orten befinden kann, gibt es das Hilfsprogramm env, das in der Regel unter /usr/bin/ zu finden ist, welches selbständig in diesem Fall nach perl, also den Perl-Interpreter, sucht und ihn startet. Dazu muss der Pfad zu ihm im Suchpfad für ausführbare Programme aufgeführt sein, der z.B. in der Umgebungsvariablen PATH gespeichert ist.

Wenn Sie Perl unter Windows verwenden, ist die Shebang-Zeile nicht von Bedeutung. Windows findet den Perl-Interpreter anhand der Dateiendung (.pl). (Ausnahme siehe nächsten Abschnitt.)

[Bearbeiten] Konfiguration im Webserver

Bei Webservern mit CGI-Unterstützung hängt es vom Webserverprodukt ab, ob die Shebang ausgelesen wird. Zu den Grundeinstellungen eines Webservers gehört mittlerweile auch die Angabe des Pfades zum Perl-Interpreter. Wenn dann bei laufendem Webserver aufgrund eines Requests ein Perl-Programm ausgeführt werden soll, ruft der Webserver den Perl-Interpreter entsprechend seiner Konfiguration auf.

Der Apache unter Windows liest ebenfalls die Shebang. Da diese jedoch meist auf Unix-Gegebenheiten angepasst ist, empfiehlt es sich, den Apachen so zu konfigurieren, dass er die Shebang generell ignoriert. Dazu benötigen Sie Zugang zu seiner Konfigurationsdatei (httpd.conf) und zur Windows-Registry. In der Apache-Konfiguration notieren Sie die Anweisung ScriptInterpreterSource registry. Diese Anweisung bewirkt, dass Apache in der Windows-Registry nach dem Pfad sucht, mit dem der Perl-Interpreter angesprochen werden kann und die Shebang umgeht. Weiterhin muss in der Registry unter HKEY_CLASSES_ROOT für eine entsprechende Dateinamensendung, beispielsweise .pl, ein Schlüssel Shell\ExecCGI\Command oder Shell\Open\Command eingetragen sein. 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 #!/usr/bin/perl -T oder #!/usr/bin/env perl -T notieren, um den Perl-Interpreter anzuweisen, den Umgang mit Daten von außerhalb (z.B. Benutzereingaben eines CGI-Programms) zur vorbeugenden Sicherheit besonders zu behandeln. Diese Option wird von Perl-Programmierern gerne empfohlen.

[Bearbeiten] Anweisungen notieren

Perl-Programme bestehen, wie die Quelltexte 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-Programms
#!/usr/bin/perl
use strict;
use warnings;

my $number = 42;
my $square = $number * $number;
print "Das Quadrat von $number ist $square.\n";

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 Pragmas laden
  • wenn Sie eine Variable definieren und einen Wert zuweisen, wie oben in Beispiel in der Anweisung my $zahl = 42;.
  • wenn Sie mit Variablen oder Werten eine Operation durchführen, wie oben in der folgenden Anweisung.
  • wenn Sie eine Perl-Funktion aufrufen, wie oben in der Anweisung die Funktion print.

[Bearbeiten] 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 ($number > 1000) {
    $number = 0;
}
Beispiel 2:
for my $i (1..99) {
    print "Das Quadrat von $i ist " . $i * $i . ".\n";
}

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.

[Bearbeiten] Kommentare in Perl

Wie jede bessere Programmiersprache erlaubt Perl das Notieren von Kommentaren. Kommentare werden nicht als Code interpretiert, sondern erläutern das Programm 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..99) {
  # Hier wird das Quadrat der Zahlen ausgegeben
    print "Das Quadrat von $i ist " . $i * $i . ".\n";
}

Kommentare in Perl beginnen mit einem Nummernzeichen #. Alles, was hinter dem Nummernzeichen bis zum Ende der Zeile steht, wird von Perl ignoriert. Beginnt eine Zeile mit dem Nummernzeichen, ist die gesamte Zeile ein Kommentar.

Neben der einfachen Auskommentierung besteht auch die Möglichkeit, größere Abschnitte des Programms als Dokumentation auszuweisen. Solche Dokumentationen können mit dem Programm perldoc, das zum Lieferumfang der Perl-Distribution gehört, separat gelesen werden. Bei komplexeren Programmen können Sie so die Dokumentation gleich zum Programm 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-Programm.

[Bearbeiten] 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 $interface_version = $ENV{'GATEWAY_INTERFACE'};

Im Beispiel ist $interface_version ein selbst vergebener Name, auch Bezeichner genannt. Bei selbst vergebenen Namen gelten folgende Regeln:

  • Sie dürfen keine Leerzeichen enthalten.
  • Ein Variablenamen wird immer mit einem "Sigil" (führendes Symbol) versehen, das den Typ des Variableninhalts anzeigt. Einer Skalarvariablen wird dabei das Dollarzeichen ($), einer Arrayvariablen das At-Zeichen (@) und einer Hashvariablen das Prozentzeichen (%) vorangestellt.
  • Nach einem eventuell vorhandenen Sigil müssen sie 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 Unterstriche _ enthalten.
  • Sie dürfen alphabetische Zeichen außerhalb ASCII wie z.B. Umlaute oder ß enthalten, wenn das Pragma utf8 geladen ist und der Quellcode in UTF-8 kodiert gespeichert wird.

Vergeben Sie sprechende Namen, die Ihnen auch ein halbes Jahr, nachdem Sie das Perl-Programmm geschrieben haben, noch signalisieren, welche Bedeutung sie haben. In Hinblick auf Tradition und zum Zwecke der Zusammenarbeit mit anderen Programmierern werden auch die Bezeichner auf englisch geschrieben.

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

[Bearbeiten] Sauberer Programmierstil

Es gibt ein paar Dinge, die ein sauber geschriebenes Perl-Programm enthalten sollte. Ohne diese Dinge funktionieren die meisten Perl-Programme 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-Programm enthält ein paar Dinge, die von Perl-Programmierern zum sauberen Programmieren empfohlen werden.

Beispiel: eines CGI-Programms
#!/usr/bin/env perl -T
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);

my $headline = 'Ein sauberes Programm!';

print qq{Content-type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Test</title></head><body>
<h1>$headline</h1>
<p>nur auf das CGI-Modul wurde hier verzichtet ;-)</p>
</body></html>
}

Zu den empfohlenen Maßnahmen sauberer Programmierung zählt auf jeden Fall die Verwendung der Aufrufoption -T in der ersten Zeile des Programms. Dadurch verursachen fehlgeschlagene Taint-Überprüfungen einen Programmabbruch. Das heißt, alle Daten, die das Perl-Programm von außen bekommt, werden vom Perl-Interpreter besonders gekennzeichnet und müssen vom Programm bei kritischen Operationen speziell bearbeitet werden, bevor sie benutzt werden können. Dies dient zum Schutz vor Einschleusung ungewollter Daten.

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 Programm ausführt. Das können zum Beispiel nicht definierte Variablen sein. Auch damit lassen sich Fehler vermeiden, die durch unachtsames Programmieren entstehen können und bei einer toleranteren Interpretation des Quelltextes nicht auffallen.

Durch das Pragma warnings gibt der Perl-Interpreter Warnungen zu zweifelhaften Befehlen aus, bevor er das Programm ausführt. Manche Unsauberkeiten im Quellcode werden so ohne zeitraubende Suche erkannt.

Die Anweisung use CGI::Carp qw(fatalsToBrowser); wird Programmierern, die Perl-Programme für die CGI-Schnittstelle entwickeln wollen, während der Entwicklungs- und Testzeit zu ihrer Bequemlichkeit dringend empfohlen. Sie bindet eine Funktion eines speziellen Modul ein, das beim ungewollten Abbruch des Programms aufgrund eines Syntaxfehlers 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 Programmabbruch 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-Programms eine falsche Lage des Perl-Interpreters ausweist. Im Produktivbetrieb muss die Anweisung wieder entfernt werden, weil Fehlermeldungen Daten enthalten können, die aus Sicherheits- oder Datenschutzgründen privat im Error-Log bleiben sollten.

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 Programms einen Variablennamen falsch geschrieben haben. Die Verwendung von my bewirkt, dass eine Variable nur 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 Programm 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-Programme schreiben wollen, mit diesem Modul und seiner API beschäftigen. Es hält für viele CGI-Programme 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 in einer Distribution mit einer ganzen Reihe von fertigen Modulen ausgeliefert, 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 Programmen 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 Programm aus aufgerufen werden können. Ferner können Sie die Technik der Subroutinen dazu nutzen, um den Programmablauf in Teilprozeduren zu zerlegen und nur bestimmte Teile des Programms auszuführen.

Seit Version 5 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 lesbarer aus.

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

  • Kommentieren Sie alle nicht-trivialen Anweisungen oder Anweisungsblöcke Ihres Programms. Sie sollten allerdings darauf achten, dass Sie auch nicht zu viel kommentieren. Ein Programm, in dem auf eine Code-Zeile zehn Zeilen Kommentar kommen, ist schlecht lesbar. Kommentieren Sie, was mit dem Code beabsichtigt ist, nicht was der Code macht, denn das sieht man ihm an, im Gegensatz zur Intention dahinter.
  • Notieren Sie den Quelltext so, dass er übersichtlich wirkt. Dazu gehören Leerzeilen zwischen logischen Abschnitten im Programm 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, $telephoneNumber, $mail_Adresse und $Homepage lauten.

[Bearbeiten] Siehe auch

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Übersicht
Schnell‑Index
Mitmachen
Werkzeuge
Spenden
SELFHTML