Installation und ein Anfang mit Perl

strict warnings say print chomp scalar $

Das ist der erste Teil des Perl-Tutorials.

In diesem Teil wirst Du lernen, wie man Perl unter Microsoft Windows installiert und wie man beginnt es unter Windows, Linux und auf dem Mac zu benutzen.

Du wirst Hinweise bekommen, wie die Entwicklungsumgebung aufzusetzen ist. Oder in weniger grandiosen Worten: Welchen Editor oder IDE soll ich für die Perl-Entwicklung benutzen?

Wir werden auch das Standard-Beispiel "Hallo Welt" sehen.

Windows

Für Windows werden wir DWIM-Perl benutzen. Das ist ein Paket, welches den Perl Compiler/Interpreter, Padre, die Perl-Entwicklungsumgebung und eine Sammlung von CPAN-Erweiterungen enthält.

Um loslegen zu können, besuche die Webseite von DWIM Perl und folgen dem Link zum Download von DWIM Perl for Windows.

Lade die exe-Datei herunter und installiere sie auf Deinem System. Davor prüfe jedoch, dass keine andere Perl-Installation vorhanden ist.

Theoretisch können beide zusammenarbeiten. Das würde an dieser Stelle aber viel mehr Erklärungen benötigen. Also, lass und mit einer einzigen Installation starten.

Linux

Die meisten modernen Linux-Distributionen kommen mit einer aktuellen Version von Perl. Für's erste werden wir diese Version benutzen. Als Editor kannst Du Padre installieren, welches i.d.R. als offizielles Software-Paket der Distribution angeboten wird. Ansonsten kann jeder Texteditor verwendet werden. Wenn Du vim oder Emacs kennst, benutze diese. Ansonsten könnte auch Gedit ein guter, einfacher Editor sein.

Apple

Ich bin mir sicher, dass Mac-Rechner auch Perl installiert haben oder dort einfach als Standardinstallation nachinstalliert werden kann.

Editor und IDE

Auch wenn ich dazu rate, muss die Padre-IDE nicht zwingend verwendet werden, um Perl-Code zu schreiben. Im nächsten Teil werde ich einige Editoren und IDE auflisten, die zur Perl-Programmierung verwendet werden können. Auch wenn Du einen anderen Editor auswählst, rate ich allen Windows-Nutzern zur Installation des oben genannten DWIN-Perl-Pakets.

Es bringt schon viele Perl-Erweiterungen mit, so dass Du später viel Zeit sparen wirst.

Video

Wenn Du es vorziehst, kannst Du auch das Video Hello world with Perl auf YouTube ansehen. In diesem Fall willst Du Dir vielleicht auch den "Beginner Perl Maven video course" ansehen.

Erstes Programm

Dein erstes Programm sieht folgendermaßen aus:

use 5.010;
use strict;
use warnings;

say "Hallo Welt";

Lass es mich Schritt für Schritt erklären.

Hallo Welt

Nachdem DWIM-Perl installiert wurde, öffnen die Klicks auf "Start -> Alle Programme -> DWIM Perl -> Padre" den Editor mit einer leeren Datei.

Gib folgendes ein:

print "Hallo Welt\n";

Wie Du sehen kannst, enden Anweisungen in Perl mit einem Semikolon ;. Mit einem \n wird das Zeilenvorschub- bzw. Neuezeile-Zeichen (Newline) eingegeben. Zeichenketten (Strings) sind in doppelte Anführungszeichen eingeschlossen ". Die print-Funktion gibt auf dem Bildschirm aus. Wenn also diese Zeile ausgeführt wird, dann gibt Perl den Text gefolgt von einem Zeilenvorschub am Bildschirm aus.

Speichere die Datei nun mit dem Dateinamen "hallo.pl" ab, damit Du das Programm mit der Auswahl "Ausführen -> Skript ausführen" starten kannst. Du wirst in einem separatem Fenster die Ausgabe sehen.

Das war's. Du hast Dein erstes Perl-Skript geschrieben.

Lass es uns jetzt ein wenig erweitern.

Perl auf der Kommandozeile für Nicht-Padre-Benutzer

Wenn Du nicht Padre oder einen der anderen IDE benutzt, kannst Du das Script nicht aus dem Editor heraus aufrufen. Zumindest nicht standardmäßig. Du wirst dazu eine Shell bzw. Eingabeaufforderung öffnen und in das Verzeichnis wechseln müssen, in dem das Skript 'hallo.pl' abgelegt ist. Dort gibst Du ein:

perl hallo.pl

So kann man das Perl-Skript auf der Kommandozeile ausführen.

say() anstelle von print()

Lass uns das Einzeiler-Perl-Skript ein wenig verbessern:

Dazu müssen wir zuerst mitteilen, welche Minimalversion von Perl genutzt werden soll:

use 5.010;
print "Hallo Welt\n";

Nachdem Du das eingegeben hast, kannst Du das Skript wieder mit "Ausführen -> Skript ausführen" oder durch Drücken der Taste F5 starten. Das speichert die Datei automatisch bevor sie ausgeführt wird.

Es ist grundsätzlich empfohlene Praxis die Minimalversion von Perl anzugeben, die für das Programm gebraucht wird.

In diesem Fall werden auch einige neue Eigenschaften, wie das say-Schlüsselwort, hinzugefügt. say ist wie print, nur kürzer und fügt automatisch einen Zeilenvorschub am Ende an.

Damit kann Dein Skript so geändert werden:

use 5.010;
say "Hallo Welt";

Wir haben print durch say ersetzt und das \n am Ende der Zeichenkette entfernt.

Die aktuelle Perl-Installation hat wahrscheinlich die Version 5.12.3 oder 5.14. Die meisten modernen Linux-Distributionen kommen mit Version 5.10 oder neuer.

Unfortunately there are still places using older versions of perl. Those won't be able to use the say() keyword and might need some adjustments to the examples later. I'll point out when I am actully using features that require version 5.10.

Leider kommt es vor, dass ältere Versionen genutzt werden. Diese sind nicht in der Lage das say()-Schlüsselwort zu benutzen und benötigen einige Anpassungen in den späteren Beispielen. Ich werde darauf hinweisen, wenn Merkmale verwendet werden, die mindestens Version 5.10 benötigen.

Sicherheitsnetz

Ich rate dringend dazu, in jedem Skript Anweisungen einzufügen, die das Verhalten von Perl beeinflussen. Hierzu werden zwei davon, sog. Pragmas, die vergleichbar mit Compiler-Flags anderer Programmiersprachen sind, eingefügt:

use 5.010;
use strict;
use warnings;

say "Hallo Welt";

In diesem Fall teilt das use-Schlüsselwort mit, dass die Pragmas eingeschaltet werden sollen.

strict and warnings will help you catch some common bugs in your code or sometimes even prevent you from making them in the first place. They are very handy.

strict und warnings werden Dir dabei helfen, verbreitete Fehler aufzuspüren oder Dich sogar davon abhalten, diese zu begehen. Somit sind die Pragmas sehr nützlich.

Benutzereingabe

So, nun lass uns unser Beispiel verbessern, indem wir den Benutzer nach seinem Namen fragen und diesen in der Antwort einfügen.

use 5.010;
use strict;
use warnings;

say "Wie ist Dein Name? ";
my $name = <STDIN>;
say "Hallo $name, wie geht's Dir?";

$name wird als skalare Variable bezeichnet.

Variablen werden mit dem my-Schlüsselwort deklariert. (Tatsächlich ist das eine der Anforderungen, die durch das Pragma strict entstehen.)

Skalare Variablen beginnen immer mit einem $-Zeichen. Die Anweisung <STDIN> wird benutzt, um eine Zeile von der Eingabe zu lesen.

Gib obiges Programm ein und starte es mit F5.

Es wird Dich nach Deinem Namen frage. Gib ihn ein und bestätige die Eingabe mit der Eingabetaste (Enter, Return).

Du wirst bemerken, dass die Ausgabe ein wenig unschön ist, weil das Komma nach dem Namen auf einer neuen Zeile erscheint. Das liegt daran dass der Zeilenvorschub, der durch die Eingabetaste entstanden ist, auch in die Variable $name eingelesen und mit ausgegeben wurde.

Den Zeilenvorschub loswerden

use 5.010;
use strict;
use warnings;

say "Wie ist Dein Name? ";
my $name = <STDIN>;
chomp $name;
say "Hallo $name, wie geht's Dir?";

Es ist eine so weitverbreitete Aufgabe in Perl, einen Zeilenvorschub am Ende einer Zeichenkette zu entfernen, dass es hierzu eine eigene Funktion chomp gibt.

Fazit

In jedem Skriptm das Du schreibst, solltest Du immer use strict; und use warnings; als die beiden ersten Anweisungen hinzufügen. Ebenfalls rate ich dringend dazu, use 5.010; anzugeben.

Übungen

Ich habe Übungen versprochen.

Probiere das nachfolgende Skript aus:

use strict;
use warnings;
use 5.010;

say "Hallo ";
say "Welt";

Die Ausgabe ist nicht auf einer Zeile. Warum? Wie kann man es beheben?

Übung 2

Schreibe ein Skript, das den Benutzer hintereinander nach zwei Zahlen fragt und anschließend die Summe davon ausgibt.

Was kommt als Nächstes?

Der nächste Teil des Perl-Tutorials befasst sich mit Editoren, IDE und Entwicklungsumgebungen für Perl.

Otras páginas

undef, der initiale Wert und die defined-Funktion in Perl
Perl-Tutorial

Author

Gabor Szabo (szabgab) Gabor Szabo