Perl Programmierung - Grundkurs
Zähler erhöht wird.
Es folgt der Schleifenkörper. Der Schleifenkörper wird in unserem Fall 10 mal ausgeführt, da wir mit $x = 1 beginnen und pro Durchlauf $x um einen Zähler erhöhen.
Was macht folgendes Beispielprogramm:
$variable = 100;
if ( $variable <= 100)
{
for ($zaehler = 100; $zaehler < 111; $zaehler++ )
{
print “Wird dieser Text ausgegeben? Wenn ja, wie oft”;
}
}
Die while-Schleife
Bei der while-Schleife wird die Schleife solange durchlaufen, wie die Bedingung erfüllt ist.
Beispielprogramm:
$summe = 0;
print “Bitte Budget in EUR eingeben:”;
$budget = ;
print “Bitte geben Sie nun die Preise ihres Einkaufs ein, zum Programmabbruh geben Sie 0 ein.\n”;
$eingabe = ;
while ( $eingabe !=0 )
{
$summe = $summe + $eingabe;
if ( summe > $budget )
{
print “Sie haben Ihr Budget überschritten.\n”;
last;
}
else
{
$eingabe = ;
}
}
print “Sie wollen für $summe EUR einkaufen\n”;
Erläuterung:
der last-Befehl: Da der Benutzer nun keinerlei eingaben mehr vornehmen soll, die Schleife jedoch ohne direktes Einwirken des Benutzers beendet werden muss, wird hier der last-Befehl verwendett.
If – else
Die Befehle, die zur else-Anweisung gehören, werden ausgeführt, wenn die Bedingung der if-Abfrage nicht zutrifft.
Elsif-Zweige
Wenn man nicht nur eine Möglichkeit innerhalb einer Abfrage überprüfen muss, sondern mehrere.
Ein Beispiel, das einen billigen Taschenrechner simuliert:
print “Bitte zwei Zahlen eingeben und +, -, * oder / für die gewünschte Rechenart:”;
$z1 = ; chop $z1;
$z2 = ; chop $z2;
$ra = ; chop $ra;
if ( $ra eq '+' )
{
$erg = $z1 + $z2;
}
elseif ( $ra eq '-' )
{
$erg = $z1 - $z2
}
elseif ( $ra eq '*' )
{
$erg = $z1 * $z2
}
elseif ( $ra eq '/' )
{
$erg = $z1 / $z2
}
else
{
print “Diese Rechenart kenne ich nicht!”;
die;
}
print “$z1 $ra $z2 = $erg\n”;
Handles
Standard-Handles
STDOUT , steht für Standard-Output und symbolisiert die Ausgabe auf den Bildschirm., falls man die Ausabe nicht anderweitig umleitet.
Die beiden folgenden Angaben sind identisch:
print “Ausgabe auf den Bildschirm”;
print STDOUT “Ausgabe auf den Bildschirm”;
STDERR , steht für Standard-Error und dient zur Ausgabe von Fehlermeldungen. Diese erscheinen auch meist auf dem Bildschirm, je nach Programmlogik werden über STDERR meistens Programmfehler auf dem Bildschirm ausgegeben. Alle weiteren relevanten Informationen werden über ein eigenes Ausabehandle z.B. In eine LOG-datei geschrieben.
STDIN, steht für Standard-Eingabe, und liest standardmässig Zeile für Zeile die Eingaben, die über die Tastatur gemacht werden.
STDIN wird im Programmtext immer in spitze Klammern gesetzt.
$x = ;
liest eine Zeile von der Standard-Eingabe in die skalare Variable $x ein.
@x =
liest von der Standard-Eingabe sol lange Zeile für Zeile in das Array @x ein, bis ein Dateiende (unter DOS-basierten Systemen STRG + Z) vorgegaukelt wird.
Dabei bekommt jede Zeile einen eigenen Platz in der Liste zugewiesen.
Datei-Handles
Um Dateiein- und ausgabe zu realisieren, müssen wir auch ein Handle erstellen und das mit einer Datei verknüpfen, in die wie dann z.B. Schreiben könnten. Das sähe dann z.B. So aus:
open (DATEI, ">ausgabe.txt");
print DATEI "Dies ist ein Test!";
close(DATEI);
zur Übung
Perl-Programm erstellen und anschiessend die Datei ausabe.dat im Editor angucken und mit einem perl-Aufruf anzeigen lassen.
Symbol-Tabelle zur Felstlegung des Umgangs mit der Datei:
Zeichen
Bedeutung
Beispiel
Lese aus der Datei; wird keine explizite Angabe gemacht, so wird die angegebene Datei zum lesen geöffnet
open (LESEN, “ausgabe.dat”);
<
Lese aus der Datei
open(LESEN, “>
Erzeuge eine Datei und schreibe hinein
open(AUS, “>ausgabe.dat”);
>>
Schreibe in die Datei, falls schon vorhanden, hänge an die Datei an
Open(DRAN, “>>ausgabe.dat”);
Arbeiten mit Dateien
Der Operator < >
Sie können mit dem Operator eine oder auch eine Reihe von Dateien lesen. Der Operator unterscheidet zwei Fälle:
- Entweder Sie haben in der
Weitere Kostenlose Bücher