Perl-Operatoren
Operatoren sind Symbole, die den Compiler anweisen, bestimmte mathematische oder logische Operationen auszuführen, wie zum Beispiel: 3+2=5.
Die Sprache Perl verfügt über einen reichen Satz integrierter Operatoren. Schauen wir uns die häufig verwendeten an:
- Arithmetische Operatoren
- Vergleichsoperatoren
- Logische Operatoren
- Zuweisungsoperatoren
- Bitweise Operatoren
- Quote-Operatoren
- Weitere Operatoren
- Operatorrangfolge
Arithmetische Operatoren
In den folgenden Tabellenbeispielen setzen wir die Variable $a auf 10 und $b auf 20.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| + | Additionsoperation | $a + $b Ergebnis ist 30 |
| - | Subtraktionsoperation | $a - $b Ergebnis ist -10 |
| * | Multiplikationsoperation | $a * $b Ergebnis ist 200 |
| / | Divisionsoperation | $b / $a Ergebnis ist 2 |
| % | Modulus-Operation, Rest nach der Division | $b % $a Ergebnis ist 0 |
| ** | Potenzierung | $a**$b Ergebnis ist 10 hoch 20 |
Beispiel
Das Ausführen des obigen Programms erzeugt die folgende Ausgabe:
$a = 10 , $b = 20 $a + $b = 30 $a - $b = -10 $a * $b = 200 $a / $b = 0.5 $a % $b = 10 $a ** $b = 16
Vergleichsoperatoren
In den folgenden Tabellenbeispielen setzen wir die Variable $a auf 10 und $b auf 20.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| == | Prüft, ob die Werte zweier Operanden gleich sind. Wenn gleich, ist die Bedingung wahr, andernfalls falsch. | ($a == $b) ist falsch |
| != | Prüft, ob die Werte zweier Operanden gleich sind. Wenn nicht gleich, ist die Bedingung wahr, andernfalls falsch. | ($a != $b) ist wahr. |
| <=> | Prüft, ob die Werte zweier Operanden gleich sind. Gibt -1 zurück, wenn die linke Zahl kleiner als die rechte Zahl ist, 0, wenn sie gleich sind, und 1, wenn die linke Zahl größer als die rechte Zahl ist. | ($a <=> $b) gibt -1 zurück. |
| > | Prüft, ob der Wert des linken Operanden größer als der Wert des rechten Operanden ist. Wenn ja, ist die Bedingung wahr, andernfalls falsch. | ($a > $b) gibt false zurück. |
| < | Prüft, ob der Wert des linken Operanden kleiner als der Wert des rechten Operanden ist. Wenn ja, ist die Bedingung wahr, andernfalls wird false zurückgegeben. | ($a < $b) gibt true zurück. |
| >= | Prüft, ob der Wert des linken Operanden größer als oder gleich dem Wert des rechten Operanden ist. Wenn ja, ist die Bedingung wahr, andernfalls wird false zurückgegeben. | ($a >= $b) gibt false zurück. |
| <= | Prüft, ob der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden ist. Wenn ja, ist die Bedingung true, andernfalls wird false zurückgegeben. | ($a <= $b) gibt true zurück. |
Beispiel
Das Ausführen des obigen Programms erzeugt die folgende Ausgabe:
$a = 10 , $b = 20 $a == $b 结果 false $a != $b 结果 true $a <=> $b 返回 -1 $a > $b 结果 false $a >= $b 结果 false $a < $b 结果 true $a <= $b 结果 true
In den folgenden Tabellenbeispielen setzen wir die Variable $a auf "abc" und $b auf "xyz" und verwenden dann Vergleichsoperatoren, um die Ergebnisse zu berechnen.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| lt | Prüft, ob die Zeichenkette auf der linken Seite kleiner als die Zeichenkette auf der rechten Seite ist. Wenn ja, wird true zurückgegeben, andernfalls wird false zurückgegeben. | ($a lt $b) gibt true zurück. |
| gt | Prüft, ob die Zeichenkette links größer als die Zeichenkette rechts ist. Wenn ja, gibt true zurück, andernfalls gibt false zurück. | ($a gt $b) gibt false zurück. |
| le | Prüft, ob die Zeichenkette links kleiner oder gleich der Zeichenkette rechts ist. Wenn ja, gibt true zurück, andernfalls gibt false zurück. | ($a le $b) gibt true zurück |
| ge | Prüft, ob die Zeichenkette links größer oder gleich der Zeichenkette rechts ist. Wenn ja, gibt true zurück, andernfalls gibt false zurück. | ($a ge $b) gibt false zurück. |
| eq | Prüft, ob die Zeichenkette links gleich der Zeichenkette rechts ist. Wenn ja, gibt true zurück, andernfalls gibt false zurück. | ($a eq $b) gibt false zurück. |
| ne | Prüft, ob die Zeichenkette links nicht gleich der Zeichenkette rechts ist. Wenn ja, gibt true zurück, andernfalls gibt false zurück. | ($a ne $b) gibt true zurück |
| cmp | Gibt 1 zurück, wenn die linke Zeichenkette größer als die rechte Zeichenkette ist, gibt 0 zurück, wenn sie gleich sind, und gibt -1 zurück, wenn die linke Zeichenkette kleiner als die rechte Zeichenkette ist. | ($a cmp $b) gibt -1 zurück. |
Beispiel
Das Ausführen des obigen Programms erzeugt die folgende Ausgabe:
$a = abc ,$b = xyz abc lt $b 返回 true $a gt $b 返回 false $a le $b 返回 true $a ge $b 返回 false $a ne $b 返回 true $a cmp $b 返回 -1
Zuweisungsoperatoren
In den folgenden Tabellenbeispielen setzen wir die Variable $a auf 10 und $b auf 20.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| = | Einfacher Zuweisungsoperator, weist den Wert des rechten Operanden dem linken Operanden zu | $c = $a + $b weist den Wert von $a + $b $c zu |
| += | Additions- und Zuweisungsoperator, weist dem linken Operanden das Ergebnis der Addition des rechten Operanden zum linken Operanden zu | $c += $a ist äquivalent zu $c = $c + $a |
| -= | Subtraktions- und Zuweisungsoperator, weist dem linken Operanden das Ergebnis der Subtraktion des rechten Operanden vom linken Operanden zu | $c -= $a ist äquivalent zu $c = $c - $a |
| *= | Multiplikations- und Zuweisungsoperator, weist dem linken Operanden das Ergebnis der Multiplikation des rechten Operanden mit dem linken Operanden zu | $c *= $a ist äquivalent zu $c = $c * $a |
| /= | Divisions- und Zuweisungsoperator, weist dem linken Operanden das Ergebnis der Division des linken Operanden durch den rechten Operanden zu | $c /= $a entspricht $c = $c / $a |
| %= | Modulo- und Zuweisungsoperator, bildet den Modulo der beiden Operanden und weist ihn dem linken Operanden zu | $c %= $a entspricht $c = $c % a |
| **= | Potenzierungs- und Zuweisungsoperator, berechnet die Potenz der beiden Operanden und weist sie dem linken Operanden zu | $c **= $a entspricht $c = $c ** $a |
Beispiel
Das Ausführen des obigen Programms erzeugt die folgende Ausgabe:
$a = 10 ,$b = 20 赋值后 $c = 30 $c = 40 ,运算语句 $c += $a $c = 30 ,运算语句 $c -= $a $c = 300 ,运算语句 $c *= $a $c = 30 ,运算语句 $c /= $a $c = 0 ,运算语句 $c %= $a $a = 4 , $c = 2 $c = 16 ,运算语句 $c **= $a
Bitweise Operationen
Bitweise Operatoren wirken auf Bits und führen Operationen Bit für Bit aus.
Setzen Sie $a = 60, $b = 13. Im Binärformat dargestellt sehen sie wie folgt aus:
$a = 0011 1100 $b = 0000 1101 ----------------- $a&$b = 0000 1100 $a|$b = 0011 1101 $a^$b = 0011 0001 ~$a = 1100 0011
Die von Perl unterstützten bitweisen Operatoren sind in der folgenden Tabelle aufgeführt:
| Operator | Beschreibung | Beispiel |
|---|---|---|
| & | Wenn er in beiden Operanden vorhanden ist, kopiert der binäre AND-Operator ein Bit in das Ergebnis. | ($a & $b) ergibt 12, was binär 0000 1100 ist |
| | | Wenn er in einem der Operanden vorhanden ist, kopiert der binäre OR-Operator ein Bit in das Ergebnis. | ($a | $b) ergibt 61, binär 0011 1101 |
| ^ | Der binäre XOR-Operator kopiert ein Bit in das Ergebnis, wenn es in einem der beiden Operanden, aber nicht in beiden, vorkommt. | ($a ^ $b) ergibt 49, binär 0011 0001 |
| ~ | Der binäre Einerkomplement-Operator ist ein unärer Operator und bewirkt ein "Umdrehen" der Bits, das heißt, 0 wird zu 1, 1 wird zu 0. | (~$a ) ergibt -61, binär 1100 0011, die Einerkomplementform einer vorzeichenbehafteten Binärzahl. |
| << | Binärer Linksverschiebungsoperator. Der Wert des linken Operanden wird um die Anzahl an Bits nach links verschoben, die der rechte Operand angibt. | $a << 2 ergibt 240, binär 1111 0000 |
| >> | Binärer Rechtsverschiebungsoperator. Der Wert des linken Operanden wird um die Anzahl an Bits nach rechts verschoben, die der rechte Operand angibt. | $a >> 2 ergibt 15, binär 0000 1111 |
Beispiel
Die Ausgabe des obigen Programms ist:
$a = 60 , $b = 13 $a & $b = 12 $a | $b = 61 $a ^ $b = 49 ~$a = -61 $a << 2 = 240 $a >> 2 = 15
Logische Operatoren
Perl logische Operatoren sind in der folgenden Tabelle dargestellt.
In den Tabellenbeispielen setzen wir die Variable $a auf wahr, $b auf falsch.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| und | Logischer UND-Operator. Wenn beide Operanden wahr sind, ist die Bedingung wahr. | ($a and $b) ist falsch. |
| && | Logischer UND-Operator im C-Stil. Wenn beide Operanden wahr sind, ist die Bedingung wahr. | ($a && $b) ist falsch. |
| oder | Logischer OR-Operator. Wenn einer der Operanden ungleich null ist, ist die Bedingung wahr. | ($a or $b) ist wahr. |
| || | Logischer OR-Operator im C-Stil. Wenn einer der Operanden ungleich null ist, ist die Bedingung wahr. | ($a || $b) ist wahr. |
| not | Logischer NOT-Operator. Wird verwendet, um den logischen Zustand des Operanden umzukehren. Wenn die Bedingung wahr ist, macht der logische NOT-Operator sie falsch. | not($a and $b) ist wahr. |
Beispiel
Die Ausgabe des obigen Programms ist:
$a = true , $b = false $a and $b = false $a && $b = false $a or $b = true $a || $b = true not($a)= 1
Quote-Operationen
Perl-Quote-Operatoren sind in der folgenden Tabelle aufgeführt.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| q{ } | Fügt einfache Anführungszeichen um eine Zeichenkette hinzu | q{abcd} ergibt 'abcd' |
| qq{ } | Fügt doppelte Anführungszeichen um eine Zeichenkette hinzu | qq{abcd} ergibt "abcd" |
| qx{ } | Fügt Backticks um eine Zeichenkette hinzu | qx{abcd} ergibt `abcd` |
Beispiel
Die Ausgabe des obigen Programms ist:
q{a = $a} = a = $a
qq{a = $a} = a = 10
qx{date} = 2016年 6月10日 星期五 16时22分33秒 CST
Weitere Operatoren
Neben den oben erwähnten Operatoren unterstützt Perl auch die folgenden Operatoren:
| Operator | Beschreibung | Beispiel |
|---|---|---|
| . | Der Punkt (.) wird verwendet, um zwei Zeichenketten zu verketten. | Wenn $a="run", $b="oob", dann ergibt $a.$b "example" |
| x | Der x-Operator gibt die Zeichenkette zurück, die eine angegebene Anzahl von Malen wiederholt wird. | ('-' x 3) gibt --- aus. |
| .. | .. ist der Bereichsoperator. | (2..5) gibt (2, 3, 4, 5) aus |
| ++ | Inkrementoperator, erhöht den ganzzahligen Wert um 1 | $a =10, $a++ gibt 11 aus |
| -- | Dekrementoperator, verringert den ganzzahligen Wert um 1 | $a =10, $a-- gibt 9 aus |
| -> | Der Pfeil wird verwendet, um eine Methode einer Klasse anzugeben | $obj->$a repräsentiert die Methode $a des Objekts $obj. |
Beispiel
Die Ausgabe des obigen Programms ist:
$a = run , $b = oob $a . $b = example "-" x 3 = --- (2..5) = 2 3 4 5 $a = 10 , $b = 15 $a 执行 $a++ = 11 $b 执行 $b-- = 14
Operatorrangfolge
Die folgende Tabelle listet die Operatorrangfolge der Sprache Perl auf:
| Operator | Assoziativität |
|---|---|
| ++, -- | Keine |
| -, ~, ! | Von rechts nach links |
| ** | Von rechts nach links |
| =~, !~ | Von links nach rechts |
| *, /, %, x | Von links nach rechts |
| +, -, . | Von links nach rechts |
| <<, >> | Von links nach rechts |
| -e, -r, | Keine |
| <, <=, >, >=, lt, le, gt, ge | Von links nach rechts |
| ==, !=, <=>, eq, ne, cmp | Von links nach rechts |
| & | Von links nach rechts |
| |, ^ | Von links nach rechts |
| && | Von links nach rechts |
| || | Von links nach rechts |
| .. | Von links nach rechts |
| ? and : | Von rechts nach links |
| =, +=, -=, *=, | Von rechts nach links |
| Sonstiges | |
| , | Von links nach rechts |
| not | Von links nach rechts |
| und | Von links nach rechts |
| or, xor | Von links nach rechts |
Beispiel
Die Ausgabe des obigen Programms ist:
$a = 20, $b = 10, $c = 15 ,$d = 5 ($a + $b) * $c / $d = 90 (($a + $b) * $c) / $d = 90 ($a + $b) * ($c / $d ) = 90 $a + ($b * $c )/ $d = 50Andere Erweiterungen