![]() | HTMLWorld: Home | Hier werben | Impressum | |
|
|
|
|
|
|
|
CGI: Operatorenvon Marcus Engelhardt Zuweisung
|
| Vergleich von Zahlen | Vergleich von Strings | bedeuted | Ergibt (wenn) |
|---|---|---|---|
| == | eq | gleich | true/false (Gleichheit/Ungleichheit) |
| != | ne | ungleich | true/false (Ungleichheit/Gleichheit) |
| > | gt | Linkes Arg. größer als rechtes Arg. | true/false (größer/kleiner) |
| < | lt | Linkes Arg. kleiner als rechtes Arg. | true/false (kleiner/ größer) |
| >= | ge | Linkes Arg. größer als-gleich rechtes Arg. | true/false (größer als-gleich/kleiner) |
| <= | le | Linkes Arg. kleiner als-gleich rechtes Arg. | true/false (kleiner als-gleich/größer) |
| <=> | cmp | Linkes Arg. kleiner als-gleich-größer als rechtes Arg. | -1/0/-1 (kleiner/gleich/größer) |
Anmerkung: Die jeweiligen Operatoren sollten nicht mit dem Trennungsoperator bei Hashes (=>, fat-comma) verwechselt werden.
Logische Operatoren finden überwiegend bei der Konstruktion von Kontrollstrukturen für Scripte Verwendung. Bei bedingten Anweisungen können beispielsweise die Ausführungsbedingungen verneint oder logisch miteinander verknüpft werden. Die Operatoren können dabei wahlweise als Symbol oder als Wort notiert werden, wobei letztere Variante eine intern höhere Priorität besitzt.
Mittels der beiden nachfolgenden Operatoren ist es möglich, eine Bedingung zu verneinen:
if(! ($Zahl == 1)) { print "Zahl ist ungleich 1"; }
#oder:
if(not ($Zahl == 1)) { print "Zahl ist ungleich 1"; }
Eine logische Verknüpfung mit und ist mittels dieser Operatoren möglich, wobei die Gesamtbedingung erfüllt ist, wenn alle Einzelbedingungen erfüllt sind:
if(($Zahl1 == 1) && ($Zahl2 == 2))
{ print "Zahl1 ist 1 UND Zahl2 ist 2!"; }
#oder:
if(($Zahl1 == 1) and ($Zahl2 == 2))
{ print "Zahl1 ist 1 UND Zahl2 ist 2!"; }
Bei der logischen Verknüpfung mit oder bedeutet inklusiv, dass es für die Erfüllung der Gesamtbedingung ausreicht, wenn eine der beiden Einzelbedingungen erfüllt ist:
if(($Zahl1 == 1) || ($Zahl2 == 2))
{ print "Zahl1 ist 1 ODER Zahl2 ist 2!"; }
#oder:
if(($Zahl1 == 1) or ($Zahl2 == 2))
{ print "Zahl1 ist 1 ODER Zahl2 ist 2!"; }
Hierbei ist die Gesamtbedingung nur dann erfüllt, wenn eine der beiden Einzelnbedingungen erfüllt ist, aber nicht beide Einzelbedingungen zugleich erfüllt sind:
if(($Zahl1 == 1) ^ ($Zahl2 == 2))
{ print "Zahl1 ist 1 ODER Zahl2 ist 2!"; }
#oder:
if(($Zahl1 == 1) xor ($Zahl2 == 2))
{ print "Zahl1 ist 1 ODER Zahl2 ist 2, aber nicht beides!"; }
In Perl existieren zwei spezielle stringspezifische Operatoren: zum einen zur Verknüpfung und zum anderen zum Vervielfachen von Zeichenketten:
Die Verknüpfung zweier oder mehrerer Zeichenketten erfolgt mittels des Punkt-Operators (.). Das Ergebnis kann so beispielsweise in einem Skalar gespeichert werden:
$String1 = "String1";
$String2 = "String2";
$String1u2 = $String1.$String2; #Verknüpfung beider Strings
Soll einem String lediglich ein anderer String angeknüpft, das Ergebnis wird also im beteiligten Skalar gespeichert, werden, ist dazu eine verkürzte Notation verwendbar:
$String1u2 = $String1;
$String1u2 .= $String2;
#Anknüpfen des Wertes von $String2 an $String1u2
#verkürzt für:
$String1u2 = $String1u2.$String2;
Die Zeichenkettenvervielfachung erfolgt in Perl mithilfe des Operators x, wobei ihm die Angabe, wie oft die Zeichenkette multipliziert werden soll, folgen muss:
$String = "String";
print $String x 3; #Gibt "StringStringString" aus
Die verschiedenen Operatoren in Perl haben eine unterschiedliche interne Priorität.
Bei Verknüpfung von Bedingungen oder komplexeren Berechnungen ist die Kenntnis dieser Zusammenhänge von großer Bedeutung, da es dabei zu unerwünschten Ergebnissen kommen kann, wenn man die Rangfolge der Operatoren nicht mittels Einklammerung beeinflusst. Mit Klammern versehene Ausdrücke haben nämlich die höchste Priorität:
| Priorität | Operator |
|---|---|
| hoch Gering | () ++ -- ** ! ~ + (Vorzeichen) - (Vorzeichen) =~ !~ * / % x . + - << >> < lt > gt <= le >= ge == eq != ne <=> cmp & | ^ && || .. (Bereiche für Arrays) ?: (spez. Syntax für Entweder-Oder-Bedingung) = += -= *= /= **= , => (Trennungsoperator für Listen bzw. Hashes) not and or xor |
|
|
| « zurück | weiter » |
| Bestellsystem, was benötige ich alles? von Sorata-Kun | |
| CGI/Perl Script hilfe bitte? von Shorty |
| Bestellsystem, was benötige ich alles? von Sorata-Kun | ||
| CGI/Perl Script hilfe bitte? von Shorty |
|
|
|
|
|
|
Startseite | Kontakt | Über uns | Impressum | Datenschutz | Was sind das für grüne Links? Unsere Angebote: HTML World | Downloads World | IT-News World | HSDPA World | Traveling World | Weather World | HSDPA | Internet Stick |