Kapitel 2 - Der Einstieg

"Hallo Welt!" in Perl

Wie immer in einer neuen Programmiersprache, werden Sie mit dem obligatorischen Hallo-Welt-Programm beginnen. Die Ausführung ist unter Linux/Unix und MS-DOS/Windows sehr ähnlich. Verwenden Sie einen Editor Ihrer Wahl und erstellen Sie eine Datei namens hello.pl mit folgendem Inhalt ...
    #!/usr/bin/perl -w

    print "Hallo Welt!\n";
Speichern Sie die Datei (hello.pl) in einem Verzeichnis Ihrer Wahl ab.  Jetzt müsste sich in diesem Verzeichnis eine Datei namens hello.pl finden. Nun zur Bedeutung der einzelnen Zeilen im Skript.

Die erste Zeile ...
    #!/usr/bin/perl -w
... ist die Shebang-Zeile. Eigentlich sind in Perl alle Zeilen, die mit dem Zeichen # beginnen, Kommentare. Nur die erste Zeile hat eine besondere Bedeutung in Perl. Damit können Sie Kommandozeilenargumente an den Perl-Interpreter übergeben. In diesem Fall wäre dies das Argument -w, womit im Falle eines Fehlers eine Warnung ausgegeben wird. Bitte passen Sie gegebenenfalls diese Zeile an. Verwenden Sie dabei das Verzeichnis, in dem sich Ihr Perl-Interpreter befindet. Unter MS-DOS/Windows könnte sie beispielsweise so aussehen ...
    #!c:\apache\perl\bin\perl.exe -w
Kommen wir nun zur Ausführung der zweiten Zeile im Programm ...
    print "Hallo Welt\n";
Folgende Bedeutung haben hier die einzelnen Bestandteile:

print
ist eine Funktion, die in der Perl-Bibliothek definiert ist, und dient zur Ausgabe von Texten.
"......"
Zwischen den doppelten Anführungsstrichen steht der Text, der auf dem Bildschirm ausgegeben wird.
Hallo Welt
Der Text der mit der Funktion print ausgegeben wird.
\n
Der Backslash \ und das n (= newline) sind zusammen ein sogenanntes Steuerzeichen und sorgen dafür, dass nach Ausgabe des Textes der Cursor in eine neue Zeile springt. Mit dem Backslash \ lassen sich auch verschiedene andere Sonderzeichen darstellen.
;
Das Semikolon zeigt uns das Ende einer Anweisung an. In unserem Fall das Ende der Anweisung print. Wenn der Perl-Interpreter zu diesem Zeichen kommt, weiß er, hier ist das Ende der Anweisung und geht dann zur nächsten Anweisung über. In unserem Fall ist das Programm zu Ende.

Jetzt wollen wir das Skript zur Ausführung bringen. Unter MS-DOS/Windows geben Sie beispielsweise ein:
    c:\apache\perl\bin\perl hello.pl
und unter Unix/Linux:
    perl hello.pl
oder
    ./hello.pl
Damit letzteres unter Unix/Linux funktioniert, muss man das Ausführungsrecht für das Skript setzen mit:
    chmod +x hello.pl
Nun müsste "Hallo Welt!" auf dem Bildschirm ausgegeben werden. Wenn sie das Skript nicht ausführen wollen, sondern nur testen, ob sie keinen Fehler gemacht haben, können sie das Programm mit der Option -c aufrufen ...
    perl -c hello.pl
Wenn Sie vielleicht schon Erfahrung haben in anderen Programmiersprachen wie z. B. C/C++, werden Sie sich gefragt haben, wo denn nun der Binärcode ist. Nun, Perl ist bzw. nennt man deswegen eine Skriptsprache, weil es keine Datei mit Binärcode gibt, sondern nur das Skript als Quellcode. Und damit wir das Programm zum Ausführen bringen, benötigen wir daher auch keinen Compiler, sondern man verwendet dazu einen Interpreter (Perl-Interpreter).

Kommentare

Wenn Sie Kommentare in Ihrem Skript einfügen wollen, so wird diesen das Zeichen # vorangestellt.

    #!/usr/bin/perl -w

    # Dies ist ein  Kommentar, der nicht vom Interpreter beachtet wird

    print "Hallo Welt\n";  # Hier wird Hallo Welt auf dem Bildschirm ausgegeben

Übersetzen Sie das Skript wie im Abschnitt zuvor. Alle Zeichen, die hinter dem Zeichen # stehen, werden bis zur nächsten Zeile nicht mitausgegeben und sind Kommentare. Falsch wäre hingegen ...

    # Dieser Kommentar erstreckt sich über 2 Zeilen
    ohne dass in der 2. Zeile vorne ein # steht

Hier beginnt in der zweiten Zeile ein Kommentar, ohne dass dem das Zeichen # vorangeht. Richtig wäre gewesen ...
    # Dieser Kommentar über 2 Zeilen 
    # wurde richtig gemacht

Nichtdruckbare Steuerzeichen

Nichtdruckbare Steuerzeichen (auch Escape-Sequenzen genannt) werden mit einem Backslash gefolgt von einem weiteren Zeichen geschrieben. Dennoch handelt es sich dabei intern um ein einzelnes Zeichen. Damit lassen sich beispielsweise Zeichen wie die Perl-Symbole \ ' " darstellen. Sie können ja mal folgendes Skript testen ...
    #!/usr/bin/perl -w

    print "Dies ist ein "Perl-Kurs"\n";

    print "Wir versuchen einen Backslash auszugeben : \ \n";
Bei der ersten Zeile werden Sie eine Fehlermeldung zurückbekommen und in der zweiten Zeile wird der Backslash nicht mit angezeigt. Stellen Sie nun den doppelten Anführungsstrichen und dem Backslash einen Backslash voran ...
    #!/usr/bin/perl -w

    print "Das ist ein \"Perl-Kurs\"\n";

    print "Wir versuchen einen Backslash auszugeben : \\ \n";

Nun klappt es auch mit der Ausgabe der Anführungsstriche und dem Backslash.

Hierzu folgt nun ein Überblick zu den Escape-Sequenzen und Ihre Bedeutung in Perl ...

\a
(BEL, Bell) akustisches Warnsignal

\b
(BS, Backspace) setzt Cursor um eine Position nach links

\e
(ESC, Escape) leitet weitere Steuersequenzen ein

\f
(FF, Formfeed) ein Seitenvorschub wird ausgelöst. Wird hauptsächlich bei Programmen verwendet, mit denen man etwas ausdrucken will.

\n
(NL, Newline) Cursor geht zum Anfang der nächsten Zeile(1)

\r
(CR, Carriage Return) Cursor springt zum Anfang der aktuellen Zeile

\t
(HT, Horizontal Tab) Zeilenvorschub zur nächsten horizontalen Tabulatorposition

\v
(VT, Vertical Tab) Cursor springt zur nächsten vertikalen Tabulatorposition

\"
" wird ausgegeben

\'
' wird ausgegeben

\\
\ wird ausgegeben

\cX
Kontrolldarstellungen

\u
nächstes Zeichen groß

\U
alle nachfolgenden Zeichen groß

\l
nächstes Zeichen klein

\L
alle nachfolgenden Zeichen klein

Hierzu ein weiteres Skriptbeispiel ...
    #!/usr/bin/perl -w

    print "Ein Signalton mit \'\\a\' \a\n";

    print "\UAlle Zeichen werden in Grossbuchstaben ausgegeben\n";

    print "\LAlle Zeichen werden in Kleinbuchstaben ausgegeben\n";

    print 'Hier wird das Newline-Zeichen nicht ausgeführt?\n';

    print "\n";
In diesem Beispiel haben Sie unter anderem auch gesehen, dass man Zeichen auch zwischen einfache Hochkommata ausgeben kann. Der Unterschied an dieser Version mit einzelnen Anführungsstrichen ist, dass die Escape-Sequenzen wörtlich ausgegeben werden, also als die Zeichen, wie Sie im Quellcode stehen.

Konstanten

Es gibt in Perl zwei Arten von Konstanten

  • Stringkonstanten für Text und

  • Zahlenkonstanten

Stringkonstanten haben Sie ja bereits kennen gelernt wie z.B. ...

    #!/usr/bin/perl -w

    print "Ich bin eine String-Konstante\n";

    print 'Ich bin auch eine String-Konstante';

    print "\n";

Zahlenkonstanten schreibt man ebenfalls direkt in den Quellcode, wie uns folgendes Beispiel demonstrieren soll  ...

    #!/usr/bin/perl -w

    print 100;               # einfache Ganzzahl 100

    print "\n";

    print 99.99;             # einfache Fließkommazahl 99,99

    print "\n";

    print 100_000_000.1234;  # 100000000,1234

    print "\n";

    print 1e-2;              # 0.01

    print "\n";

    print 0b0101;            # binäre Darstellung von 5

    print "\n";

    print 0111;              # oktale Darstellung von 73

    print "\n";

    print 0xff;              # hexadezimale Darstellung von 255

    print "\n";

Hier haben Sie einige Möglichkeiten, wie man Zahlenkonstanten in Perl ausgeben kann. C/C++-Programmierer werden sich jetzt fragen, ob es auch möglich ist, symbolische Konstanten, wie z.B. mit #define zu definieren. Hierzu die Variante für Perl ...

    use constant MWST => 16;

    print MWST;

    print "\n";

Damit wird im Quellcode überall (aber nur außerhalb von Zeichenkettenkonstanten) die Zeichenfolge MWST durch den Wert 16 ersetzt, was uns die Ausgabe bei Ausführung des Skriptes auch bestätigt.

Zurück zu Kapitel 1 | Zur Übersicht | Weiter zu Kapitel 3


(1) Eigentlich erzeugt die Steuersequenz \n (Linefeed) auf einem Drucker nur einen Zeilenvorschub, aber keinen Wagenrücklauf; da unter Unix/Linux ein \n auf dem Terminal aber beides gleichzeitig macht, somit also den Cursor an den Anfang der nächsten Zeile positioniert, wurde diese Konvention auch Perl übernommen. Unter Windows erzeugt ein \n im Perlcode bei der Ausgabe tatsächlich die Kombination \r\n, also Wagenrücklauf und Zeilenvorschub; beim Einlesen von Textdaten wird entsprechend umgekehrt gewandelt.

-- JoergWestphal - 31 Jan 2004
-- HaraldBongartz - 28 Apr 2005
Topic revision: r2 - 2005-04-28 - 23:59:00 - HaraldBongartz
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.