|
  
Sie
haben nun die Grundfähigkeiten um ein Programm zu schreiben
- Sie wissen allerdings noch nicht wie Sie Variablen vergleichen
können.
Unterkapitelindex
7.1 Wozu vergleichen?
7.2 Allgemeines zu Vergleichen
7.3 Unless Anweisung
7.4 Beispiel
|
|
|
7.1
Wozu vergleichen?
In Programmen werden Verleiche ständig genutzt. Ein einfaches
Beispiel: Sie möchten ein Programm schreiben das ein Passwort
auf seine Richtigkeit prüft. Oder Sie möchten wissen
ob die Anzahl der maximalen Einträge größer oder
kleiner der Anzahl der tatsächlichen Einträge ist.
Sie sehen also das Sie hier ein wichtiges Kapitel lesen.
|
|
7.2
Allgemeines zu Vergleichen
Vergleiche sind sehr einfach durchführbar:
|
01
02
|
if (1 == 2){print "Perl hat sich
vertan";}
if (1 == 1){print "Perl hat doch Recht.";}
|
In diesem einfachen Beispiel sehen Sie wie Sie einen einfachen Vergleich
durchführen. Statt den Zahlen (1 und 2) hätten Sie auch
Variablen oder gar Arrays einsetzen können:
|
01
02
03
04
05
06
|
my @array;
push @array,1;
push @array,3;
push @array,2;
if ($array[0] <= $array[1] && $array[1] <
$array[2]){ print "Der Array ist sortiert.";)
else {print "Der Array ist nicht sortiert."}
|
In diesem Fall würde
das Programm korrekt ausgeben das der Array nicht sortiert ist.
Hier wurde auch gleich der AND Operator - das && genutzt.
Dadurch können Sie beliebig viele Vergleiche aneinanderreihen
die erfüllt sein müssen damit der Code aufgerufen wird.
Desweitern wurde der ELSE Befehl genutzt. Was in der geschweiften
Klammer hinter dem ELSE Befehl steht wird nur dann ausgeführt,
wenn der Vergleich *nicht* gilt.
Neben dem AND Operator && gibt es auch noch den OR Operator
||. Die Bedingung ist dann wahr, wenn einer der beiden Vergleiche
richtig ist.
Zum Vergleichen von Zahlen gibt es folgende Operatoren:
|
==
!=
<
>
<=
>=
|
Beide Zahlen müssen gleich sein
Beide Zahlen müssen ungleich sein
Zahl 1 muss kleiner Zahl 2 sein
Zahl 1 muss größer Zahl 2 sein
Zahl 1 muss kleiner oder gleich Zahl 2 sein
Zahl 1 muss größer oder gleich Zahl 2 sein
|
Zum Vergleichen von Strings
gibt es folgende Operatoren:
|
eq
ne
|
Text 1 muss gleich Text 2 sein
Text 1 muss ungleich Text 2 sein
|
Der Unterschied zwischen
== und eq liegt also darin das mit == Zahlen
und mit eq Zeichenketten verglichen werden können.
|
|
7.3
Unless
Die Unless Anweisung ist eine Negativ If Anweisung und dient nur
zur Übersichtlichkeit. Beispielsweise kann damit
|
01
|
if (1==1){ } else { print "Fehler"; }
|
als
|
01
|
unless (1==2){ print "Fehler"; }
|
geschrieben werden.
|
|
7.4
Beispiel
Das folgende Beispiel ist eine einfache Passwortüberprüfung
|
|
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#!/usr/bin/perl -wT
use strict;
use CGI;
my $cgi = new CGI;
print $cgi->header;
print <<"EOF";
Content-Type:text/html
<html>
<head><title>Passwortabfrage</title></head>
<body>
EOF
my $pw = "test";
if ($pw ne 'passwort'){ print "Passwort falsch!";
} else { print "Geheime Daten."; }
print "</body>\n</html>";
|
Als Übung wäre
es möglich das obige Programm mit Nutzereingaben statt einem
festgelegten Passwort zu nutzen (siehe Kapitel 6).
 
|