Login
Newsletter
Werbung

Fr, 11. Juni 1999, 00:00

Perl/CGI-Workshop, Teil 6

Perl/CGI-Workshop, Teil 6.

Kontrollstrukturen (1)

Die Kontrollstrukturen von Perl wurden zum größten Teil aus C/C++ übernommen. Allerdings sind die geschweiften Klammern Pflicht:

#!/usr/bin/perl
# ifexamp.pl -- by W. Jährling
print "Gibt es etwas Besseres als Linux? (j/n) ";
$meinung = <STDIN>;
chomp $meinung; # Schneidet das Newline-Zeichen ab.
if ($meinung eq "n") { # "eq" prüft Strings auf Gleichheit
 print "Richtig!\n";
}

In diesem Beispiel ist kein else-Zweig nötig, da niemand jemals mit "j" antworten wird ;). In anderen Situationen kann es aber recht nützlich sein, auch eine Alternative zu haben:

#!/usr/bin/perl
# alternate.pl -- by W. Jährling
print "Dateiname: ";
$datei = <STDIN>;
if (not open(DATEI, "< $datei")) {
 print STDERR "Konnte Datei nicht öffnen\n";
} else {
 @inhalt = <DATEI>;
 close(DATEI);
 print @inhalt;
}
# ...
print "Programm beendet!\n";

In Perl können sowohl die in C/C++ üblichen Operatoren ("!", "||", "&&" etc.) als auch die aus anderen Sprachen bekannten ("not", "or", "and") verwendet werden.

Die "while"-Schleife funktioniert nach dem gleichen Muster:

#!/usr/bin/perl
# while.pl -- by W. Jährling
@sinnlos = 1 .. 7;
while (@sinnlos) { # Solange es keine leere Liste ist
 pop @sinnlos;
}
$file = "irgendwas.htm";
open(DATEI, "< $file") or die "Konnte Datei nicht öffnen!\n";
# (So öffnet man Dateien in Perl üblicherweise)
while ($zeile = <DATEI>) {
 # $zeile verarbeiten
}
close(DATEI);

Zur Zeile, in der hier die Datei geöffnet wird, muss wohl noch etwas gesagt werden. Beim Operator "or" wird zuerst die linke Seite ausgewertet. Wenn der Ausdruck dort "true" ergibt, wird der Ausdruck rechts gar nicht mehr ausgewertet, da das Gesamtresultat ohnehin "true" ist. Wenn die Funktion open() erfolgreich war, wird also der or-Teil nicht mehr ausgeführt. Die Funktion die() schreibt den ihr übergebenen Text nach STDERR und beendet das Programm.

Im nächsten Kapitel werden wir die "for"- und die "foreach"-Schleife betrachten.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung