SELFHTML/Quickbar CGI/Perl Perl-Sprachelemente

| ## Grundsätzliches zu Perl-Scripts
| Aufrufmöglichkeiten des Perl-Interpreters Regeln für Perl-Scripts und Kommentare in Perl Anweisungen notieren Anweisungsblöcke notieren Selbstvergebene Namen

## 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, muß außerdem ein WWW-Server installiert sein.

Aufrufen können Sie den Perl-Interpreter mit einem Perl-Script, also einer Datei mit Perl-Code. Solche Dateien haben die Standard-Dateinamenendung `.pl`. Der Perl-Interpreter wird normalerweise einfach mit `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 beide Dateien mit ihren korrekten Pfadnamen aufrufen, also z.B. `c:\www\bin\perl.exe c:\scripts\perl\hallowelt.pl` (im Beispiel: Pfadsyntax nach MS-Windows).

Daneben gibt es etliche 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`

Die folgende Liste enthält wichtige Optionen beim Aufruf des Perl-Interpreters.

Option | Bedeutung
--- | ---
`-c` | Das Perl-Script wird nicht ausgeführt, sondern nur auf syntaktische Richtigkeit überprüft
`-d` | Das Perl-Script wird im Debug-Modus ausgeführt. Der Debug-Modus erlaubt das Austesten des Perl-Scripts.
`-S` | Das Script braucht nur als Dateiname ohne Pfad angegeben 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 während der Ausführung streng auf Fehlerfreiheit überprüft.
`-v` | Gibt die Version und den genauen Stand des Perl-Interpreters aus.
`-w` | Bewirkt, daß der Perl-Interpreter nicht nur offensichtliche Fehlermeldungen bei Syntaxfehlern ausgibt, sondern auch Warnungen bei möglichen Fehlern und logisch zweifelhaften Anweisungsfolgen.

### Tip:

Wenn Sie die Beispiele, die in den Perl-Beschreibungen in diesem Dokument vorkommen, selbst ausprobieren möchten, kopieren Sie sich die Beispiele aus dem WWW-Browser über die Zwischenablage Ihres Betriebssystems in einen Texteditor. Speichern Sie den Inhalt in einer Perl-Datei ab, z.B. unter dem Namen `test.pl`. Rufen Sie den Perl-Interpreter mit dieser Datei auf. Das sollten Sie möglichst auf der Kommandozeilenebene (DOS oder Unix-Shell beispielsweise) tun, da viele der Beispiele ihre Ergebnisse auf die Standardausgabe schreiben.

## Regeln für Perl-Scripts und Kommentare in Perl

Perl-Scripts können Sie mit jedem ASCII-Editor erstellen und bearbeiten. Ideal ist ein leistungsfähiger Programmierer-Editor, der sich so konfigurieren läßt, daß er das Programmieren in Perl optimal unterstützt, etwa durch gespeicherte Sprachbausteine.

Speichern Sie Perl-Scripts unter einem Dateinamen mit der Endung `.pl` ab.

Zum Aufbau eines Perl-Scripts gibt es nur eine feste Regel: in der ersten Zeile sollte eine Anweisung stehen, die angibt, in welchem Verzeichnis sich die ausführbare Datei des Perl-Interpreters befindet.

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

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

### Erläuterung:

Die Anweisung zur Lage des Perl-Interpreters auf dem Rechner beginnt mit den Zeichen `#!` - gefolgt von der Pfadangabe. Ab der nächsten Zeile können Sie Anweisungen in der Sprache Perl notieren, wie im Beispiel die Ausgabe der beiden Wörter "Hallo Welt" auf die Standardausgabe.

Die Anweisung zur Lage des Perl-Interpreters auf dem Rechner wird vor allem von Unix- und Unix-kompatiblen Systemen verwertet, 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, notieren Sie den genauen Pfad der ausführbaren Datei des Perl-Interpreters. Benutzen Sie dabei immer einfache Schrägstriche zur Trennung von Verzeichnissen, auch wenn es sich um einen DOS-/Windows-Rechner handelt.

Die Zeile mit der Anweisung zur Lage des Perl-Interpreters ist zugleich ein Kommentar laut Perl-Syntax. Kommentare beginnen mit dem Gatterzeichen `#`. Alles zwischen diesem Zeichen und dem Ende der gleichen Zeile wird vom Perl-Interpreter ignoriert. Für mehrzeilige Kommentare müssen Sie alle betroffenen Zeilen mit einem `#` beginnen.

### Beachten Sie:

Wenn Sie Perl im Zusammenhang mit einem modernen WWW-Server mit CGI-Unterstützung installiert haben, ist die Zeile für die Lage des Perl-Interpreters häufig auch nicht von Bedeutung. Denn zur Konfiguration des WWW-Servers gehört mittlerweile auch die Angabe des Pfades zum Perl-Interpreter. Wenn dann bei eingeschaltetem WWW-Server ein Perl-Script über das HTTP-Protokoll ausgeführt wird, ruft der WWW-Server den Perl-Interpreter entsprechend seiner Konfiguration auf.

## Anweisungen notieren

Perl besteht wie andere Programmiersprachen aus einer kontrollierten Anordnung von Anweisungen. Das sind Befehle, die der Perl-Interpreter bewertet und in Maschinencode umsetzt, der auf dem Rechner des Anwenders ausführbar ist.

Es gibt einfache und komplexere Anweisungen.

### Beispiele:

    #!/usr/bin/perl

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

### Erläuterung:

Eine Anweisung in Perl besteht aus einem Befehl, der normalerweise mit einem Strichpunkt `;` abgeschlossen wird.

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.

## Anweisungsblöcke notieren

Ein Anweisungsblock besteht aus 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 eines Unterprogramms stehen, bilden einen Anweisungsblock.

### Beispiel 1:

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

### Beispiel 2:

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

### 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 oben) oder bei Schleifen (wie in Beispiel 2 oben) müssen Sie solche Anweisungsblöcke immer notieren, auch wenn nur eine einzige Anweisung von der Bedingung oder der Schleifenbedingung abhängig ausgeführt werden soll.

Anweisungsblöcke können natürlich auch verschachtelt sein.

## Selbstvergebene Namen

An vielen Stellen in Perl müssen Sie selbst Namen vergeben, zum Beispiel für Variablen.

### Beispiel:

    $Daten = $ENV{'QUERY_STRING'};

### Erläuterung:

Bei selbst vergebenen Namen gelten folgende Regeln:

- sie dürfen keine Leerzeichen enthalten
- sie sollten maximal 32 Zeichen Länge haben
- sie dürfen nur aus Buchstaben und Ziffern bestehen - das erste Zeichen sollte ein Buchstabe sein; es sind Groß- und Kleinbuchstaben erlaubt
- sie dürfen keine deutschen Umlaute oder scharfes S enthalten
- sie dürfen als einziges Sonderzeichen den Unterstrich "_" 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.

weiter: | Variablen und Datentypen
zurück: | HTML-Formulare und CGI

SELFHTML/Quickbar CGI/Perl Perl-Sprachelemente

© 1998 Stefan Münz, muenz@csi.com