Perl Programmierung - Grundkurs
"$Schifffahrt"; # FALSCH
my $Schiff = "Flugschiff";
print "${Schiff}fahrt"; # Richtig
Wahrheitswerte
Wenn Sie eine Schleife formuilieren oder einen Vergleich, dann hängen beide von einer Bedingung ab. Das ist der Ausdruck, der die Entscheidung liefert.Weiter oder nicht weiter.
Für solche Werte benutzt man den Ausdruck Wahrheitswerte und bezeichnet die möglichen Zustände als true oder false – wahr oder falsch.
Es gibt in Perl keine eigenen Wahrheitswerte mit denen man true oder false angeben kann. Es werden einfach verschiedene Werte einer skalaren Variablen dafür missbraucht.
Ein Skalar wird als Wahrheitswert false interpretiert, wenn er
- die Zahl 0 ist oder
- der leere String oder
- die Ziffer 0 oder
- undefiniert
Jeder andere Wert gilt als true.
Ein Beispiel mit dem alle geraden Zahlen von 20 bis 2 auf dem Bildschirm ausgegeben werden sollen. Der Zahlenwert 0 führt zum Abbruch der Schleife.
my $zahl = 20;
while ($zahl) {
print "$zahl ";
$zahl = $zahl –2;
}
# 20 18 16 14 12 10 8 6 4 2
Das gleiche Prinzip wie oben auf Strings angewandt. Vom eingegebenen String sollen sol lange Zeichen entfernt werden, bis der String leer ist.
my $eingabe = ;
while ($eingabe) {
($eingabe) = ($eingabe =~ m/.(.*)/;
print "$eingabe\n";
}
Die Ausgabe mit den eingegebenen Wort "Eingabe" würde so aussehen:
Eingabe
ingabe
ngabe
gabe
abe
be
e
Operatoren
Zuweisungsoperatoren
= Zuweisung eines Ausdruckswerts
$a = 2 # Die Variable a erhält den Wert 2
$b= 3 # Die Variable b erhalt den Wert 3
+= Kombinationszuweisung, einschliesslich Addition
$a += $b # Addition von a und b, Ergebnis wird a zugewiesen
.= Verknüpfung von Strings
$a .= $b # ab
Vergleichsoperatoren
Zahlen
Strings
Bedeutung
Ist wahr, wenn ...
==
eq
gleich
beide Werte gleich sind
!=
ne
nicht gleich
beide Werte nicht gleich sind
<
lt
kleiner als
der linke Wert kleiner ist als der rechte ist
<=
le
kleiner gleich
der linke Wert kleiner oder gleich dem rechten ist
>
gt
grösser als
der linke Wert grösser ist als der rechte ist
>=
ge
grösser gleich
der linke Wert grösser oder gleich dem rechten ist
0
cmp
Vergleich
Liefert 0 zurück, wenn beide Werte gleich sind; 1 zurück, wenn der linke grösser als der rechte ist und –1 zurück, wenn der linke kleiner als der rechte ist.
Wahres Beispiel
Unwahres Beispiel
1 == 1
1 == 9
1 != 9
1 != 1
1 < 9
1 < 1
1 <= 1
1 <= 0
9 > 1
1>1
1>= 1
1 >= 9
9 < = >
1 < = >
'hallo' eq 'hallo'
'hallo' eq 'hello'
'hallo' ne 'bye'
'hallo' ne 'hallo'
'Aachen' lt 'Zwickau'
'Zwickau' lt 'Aachen'
'Aachen' le 'Zwickau'
'Zwickau' le 'Aachen'
'Zwickau' gt 'Aachen'
'Aachen' gt 'Zwickau'
'Aachen' ge 'Aachen'
'Aachen' ge 'Zwickau'
'Zwickau' cmp 'Aachen'
'Aachen' cmp 'Aachen'
Rechenoperatoren
Zeichen
Bedeutung
Beispiel
+
Addition
$summe = $summand1 + $summand2
-
Substraktion
$differenz = $minuend - $subtrahend
*
Multiplikation
$produkt = $faktor * $faktor
/
Division
$quotient = $dividend / $divisor
%
Modulo
$modulo = $dividend / $divisor
**
Potenzierung
$potenz = $basis ** $exponent
Stringoperatoren
Zeichen
Bedeutung
Beispiel
.
Zusammenführung
$gesamtstring = $string1 . $string2
x
Vervielfachung
$vielstring = $string x $wiederholung
In diesem Beispiel bekommt das Skalar $mathe den Inhalt der Addition von $x und $y zugewiesen, also den Wert 300. Die Variable $string hingegen erhält als Inhalt hintereinander den Inhalt von $x und den von $y zugewiesen, also 100200.
$x = 100;
$y = 200;
$mathe = $x + $y;
$string = $x . $y;
In diesem Beispiel kommt der Vervielfachungsoperator zum Zug. Das Skalar $mathe erhält den Inhalt der Multiplikation von $x und $y zugewiesen, also den Wert 400. Die Variable $string hingegen erhält als Inhalt den Inhalt von $x und in $y-facher Ausfertigung zugewiesen, also 100100100100.
$x = 100;
$y = 4;
$mathe = $x * $y;
$string = $x x
Weitere Kostenlose Bücher