|
Zuweisungsoperator
Vergleichsoperatoren
Berechnungsoperatoren
Logische Operatoren
Bit-Operatoren
Operator zur Zeichenkettenverknüpfung
Operator zur Zeichenkettenwiederholung
Operatorenrangfolge
$Name = "Josua Piesepampel"; $Code = 4711; |
if($SinnDesLebens == 42) { print "Sie haben das Leben verstanden!\n" }; if($SinnDesLebens != 42) { print "Sie haben nix kapiert vom Leben!\n" }; if($SinnDesLebens > 42) { print "Sind Sie wahnsinnig?\n" }; if($SinnDesLebens < 42) { print "Sie sind eine Nummer zu klein für das Leben!\n" }; if($Alter >= 18) { print "Sie dürfen selbst diesen Schwachsinn hier sehen!\n" }; if($Alter <= 17) { print "Sie sind nicht mal alt genug für diesen Schwachsinn!\n" }; if($Passwort eq "Hexasex") { print "Sie haben Zugang zum Sex im hexadezimalen Raum!\n" }; if($Passwort ne "Hexasex") { print "Haben Sie lieber eindimensionalen Sex daheim im Bett!\n" }; if($Name gt "Y") { print "Sie sind aber auch immer der Letzte!\n" }; if($Name lt "B") { print "Sie sind aber auch immer der Erste!\n" }; if($Name ge "ZZ Top") { print "Ihre Lieblingsband ist ZZ Top oder was ganz Perverses!\n" }; if($Name le "Abba") { print "Ihre Lieblingsband ist Abba oder was ganz Perverses!\n" }; if($Alter =~ /[^0-9]/) { print "Das ist ja gar keine Zahl!\n" }; |
Um abzufragen, ob zwei Zahlen gleich sind, notieren Sie zwei Istgleichzeichen == nebeneinander.
Um abzufragen, ob zwei Zahlen unterschiedlich sind, notieren Sie zwischen beiden Werten die Zeichen !=.
Um abzufragen, ob eine Zahl größer oder gleich ist als eine andere, notieren Sie die Zeichen >=.
Um abzufragen, ob eine Zahl in jedem Fall größer ist als eine andere, notieren Sie das Zeichen >.
Um abzufragen, ob eine Zahl kleiner oder gleich ist als eine andere, notieren Sie die Zeichen <=.
Um abzufragen, ob eine Zahl in jedem Fall kleiner ist als eine andere, notieren Sie das Zeichen <.
Um abzufragen, ob zwei Zeichenketten gleich sind, notieren Sie eq zwischen den beiden Werten, die verglichen werden sollen (eq = equal = gleich).
Um abzufragen, ob zwei Zeichenketten unterschiedlich sind, notieren Sie ne zwischen den beiden Werten, die verglichen werden sollen (ne = not equal = nicht gleich).
Um abzufragen, ob eine erste Zeichenkette alphabetisch weiter hinten liegt als eine zweite, notieren Sie gt zwischen den beiden Werten, die verglichen werden sollen (gt = greater than = größer als).
Um abzufragen, ob eine erste Zeichenkette alphabetisch weiter vorne liegt als eine zweite, notieren Sie lt zwischen den beiden Werten, die verglichen werden sollen (gt = less than = kleiner als).
Um abzufragen, ob eine erste Zeichenkette alphabetisch gleich ist wie eine zweite oder weiter hinten liegt, notieren Sie ge zwischen den beiden Werten, die verglichen werden sollen (ge = greater or equal = größer oder gleich).
Um abzufragen, ob eine erste Zeichenkette alphabetisch gleich ist wie eine zweite oder weiter vorne liegt, notieren Sie le zwischen den beiden Werten, die verglichen werden sollen (le = less or equal = kleiner oder gleich).
Um den Wert eines Skalars, egal ob Zahl oder Zeichenkette, mit einem regulären Ausdruck zu vergleichen, benutzen Sie den Vergleichsoperator =~.
$Hundertlasser = 83 + 17; $Hundertlasser = 113 - 13; $Hundertlasser = 4 * 25; $Hundertlasser = 450 / 4.5; $Hundertlasser = 450 / 2 - 125; $Hundertlasser = 10 * (2 + 8); $x = $Hundertlasser % 4; if($x == 0) { print $Hundertlasser, " ist ein Schaltjahr\n" } /* Besondere Notationen: */ $Zahl = 100; $Zahl++; # $Zahl hat jetzt den Wert 101 $Zahl--; # $Zahl hat jetzt den Wert 100 $Zahl += 10; # $Zahl hat jetzt den Wert 110 $Zahl -= 10; # $Zahl hat jetzt den Wert 100 |
Sie können mehrere Operationen in Reihe notieren. Dabei gilt die übliche "Punkt-vor-Strich-Regel". Wenn Sie eine andere Regel erzwingen wollen, müssen Sie Klammern verwenden, so wie im obigen Beispiel $ImmerGleich = 10 * (2 + 8);.
Die besonderen Notationen, die in den obigen Beispielen vorkommen, können Sie verwenden, wenn Sie Additionen oder Subtraktionen abkürzen wollen:
$Zahl++; ist eine Abkürzung für $Zahl = $Zahl + 1;
$Zahl--; ist eine Abkürzung für $Zahl = $Zahl - 1;
$Zahl += 10; ist eine Abkürzung für $Zahl = $Zahl + 10;
$Zahl -= 10; ist eine Abkürzung für $Zahl = $Zahl - 10;
Der Operator ++ wird auch als Inkremationsoperator bezeichnet, der Operator -- als Dekrementationsoperator.
#!/usr/bin/perl $Versuche = 1; $Wert = 0; $min = 66; $max = 77; Eingabe: print "Geben Sie eine Zahl zwischen ", $min, " und ", $max, " ein: "; $Wert = <STDIN>; chop($Wert); if($Wert < $min || $Wert > $max) { if($Wert =~ /[^0-9]/) { print "Das war keine Zahl.\n\n"; $Versuche++; goto Eingabe; } if($Versuche < 3 && $Wert < $min) { print "Ihre Zahl war zu klein.\n\n"; } elsif($Versuche < 3 && $Wert > $max) { print "Ihre Zahl war zu gross.\n\n"; } elsif($Versuche >= 3 && $Wert < $min) { print "Ihre Zahl war verdammt noch mal zu klein!\n\n"; } elsif($Versuche >= 3 && $Wert > $max) { print "Ihre Zahl war verdammt noch mal zu gross!\n\n"; } $min = abs($Wert - $min); $max = $min + abs($max - $min); $Versuche++; goto Eingabe; } if($Versuche > 1) { print "Sehen Sie, so lernt man dazu!\n"; } else { print "Sie waren sicher mal ein braves Kind!\n"; } |
>> verschiebt Bits nach rechts
<< verschiebt Bits nach links
& definiert in einer Bitmaske eine Und-Bedingung
| definiert in einer Bitmaske eine inklusive Oder-Bedingung
^ definiert in einer Bitmaske eine exklusive Oder-Bedingung
! definiert in einer Bitmaske eine Negations-Bedingung
~ definiert in einer Bitmaske eine Komplementär-Bedingung
#!/usr/bin/perl @Subjekte = ("Helmut Kohl ","Theo Waigel ","Rudolph Scharping ","Gerhard Schroeder "); @Praedikate = ("liebt ","verehrt ","umgarnt ","bereichert "); @AkkusativObj = ("den Zauber ","die Freuden ","das Prinzip ","den Rausch "); @GenitivObj = ("der Macht.","des Bundestags.","der neuen Bundeshauptstadt.","der Sinneslust."); @Indizes = (0..3); print "ZUFALLS"."SAETZE\n\n"; while($i < 10) { $j = 0; sleep(2); $Zufallssatz = ""; srand(time()); foreach $j (0..3) { $Indizes[$j] = rand(3); } $Zufallssatz = $Zufallssatz.$Subjekte[$Indizes[0]]; $Zufallssatz = $Zufallssatz.$Praedikate[$Indizes[1]]; $Zufallssatz = $Zufallssatz.$AkkusativObj[$Indizes[2]]; $Zufallssatz = $Zufallssatz.$GenitivObj[$Indizes[3]]; print $Zufallssatz, "\n"; $i++; } |
Das obige Beispiel-Script erzeugt Zufallssätze basierend auf den Listen von Satzelementen, die am Beginn des Scripts definiert werden.
#!/usr/bin/perl print "A"."h" x 10, "!\n"; # erzeugt die Ausgabe "Ahhhhhhhhhh!" |
#!/usr/bin/perl $OffizielleStatistik = 3.29 * 3 + 4.71; $MeineStatistik = 3.29 * (3 + 4.71); print "Die offizielle Statistik sagt ",$OffizielleStatistik"\n" print "Meine Statistik sagt ",$MeineStatistik,"\n"; |
Blättern: | |||
Schleifen und Sprungbefehle | Reguläre Ausdrücke |
HTML-Dateien selbst erstellen | |||
Dokumentation: CGI/Perl | |||
CGI und Perl: Perl Sprachelemente |
© 1997 Stefan Münz, s.muenz@euromail.com