Ein Operator ist ein Symbol, das den Compiler anweist, eine bestimmte mathematische oder logische Operation auszuführen, wie zum Beispiel: 3+2=5.
Die Perl-Sprache verfügt über eine Fülle integrierter Operatoren. Werfen wir einen Blick auf einige der am häufigsten verwendeten:
Arithmetische Operatoren
Vergleichsoperator
Logische Operatoren
Zuweisungsoperator
Bitoperatoren
Zitatbetreiber
Andere Betreiber
Vorrang des Operators
Im Tabellenbeispiel setzen wir die Variablen $a auf 10 und $b auf 20.
| Operator | beschreiben | Beispiel |
|---|---|---|
| + | Zusatz | $a + $b ergibt 30 |
| - | Subtraktion | $a - $b ergibt -10 |
| * | Multiplikation | $a * $b ergibt 200 |
| / | Divisionsbetrieb | $b / $a ergibt 2 |
| % | Finden Sie die Restoperation, den Rest nach der ganzzahligen Division | $b % $a ergibt 0 |
| ** | Mit Potenz multiplizieren | Das Ergebnis von $a**$b ist 10 hoch 20 |
Das Ausgabeergebnis der Ausführung des obigen Programms ist:
$a = 10 , $b = 20$a + $b = 30$a - $b = -10$a * $b = 200$a / $b = 0,5$a % $b = 10$a ** $ b = 16
Im Tabellenbeispiel setzen wir die Variablen $a auf 10 und $b auf 20.
| Operator | beschreiben | Beispiel |
|---|---|---|
| == | Überprüft, ob die Werte zweier Operanden gleich sind. Wenn sie gleich sind, ist die Bedingung wahr, andernfalls ist sie falsch. | ($a == $b) ist falsch |
| != | Überprüft, ob die Werte der beiden Operanden gleich sind. Wenn nicht, ist die Bedingung wahr, andernfalls ist sie falsch. | ($a != $b) ist wahr. |
| <=> | Überprüft, ob die Werte der beiden Operanden gleich sind, und gibt -1 zurück, wenn die Zahl links kleiner als die Zahl rechts ist, 0, wenn sie gleich sind, und 1, wenn die Zahl links größer als die Zahl ist rechts. | ($a <=> $b) gibt -1 zurück. |
| > | Überprüft, ob der Wert des linken Operanden größer ist als der Wert des rechten Operanden. Wenn ja, ist die Bedingung wahr, andernfalls ist sie falsch. | ($a > $b) gibt false zurück. |
| < | Überprüft, ob der Wert des linken Operanden kleiner ist als der Wert des rechten Operanden. Wenn ja, ist die Bedingung wahr, andernfalls wird falsch zurückgegeben. | ($a < $b) gibt true zurück. |
| >= | Überprüft, ob der Wert des linken Operanden größer oder gleich dem Wert des rechten Operanden ist. Wenn ja, ist die Bedingung wahr, andernfalls wird falsch zurückgegeben. | ($a >= $b) gibt false zurück. |
| <= | Überprüft, ob der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden ist. Wenn ja, ist die Bedingung wahr, andernfalls wird falsch zurückgegeben. . | ($a <= $b) gibt true zurück. |
Das Ausgabeergebnis der Ausführung des obigen Programms ist:
$a = 10 , $b = 20$a == $b Das Ergebnis ist falsch$a != $b Das Ergebnis ist wahr$a <=> $b Rückgabe -1$a > $b Das Ergebnis ist falsch$a >= $b Das Ergebnis ist falsch. $a < $b ergibt wahr. $a <= $b ergibt wahr
Setzen Sie im folgenden Tabellenbeispiel die Variable $a auf „abc“ und $b auf „xyz“ und verwenden Sie dann Vergleichsoperatoren, um das Ergebnis zu berechnen.
| Operator | beschreiben | Beispiel |
|---|---|---|
| lt | Überprüft, ob die Zeichenfolge links kleiner als die Zeichenfolge rechts ist. Wenn ja, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben. | ($a lt $b) gibt true zurück. |
| gt | Überprüft, ob die Zeichenfolge links größer als die Zeichenfolge rechts ist. Wenn ja, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben. | ($a gt $b) gibt false zurück. |
| le | Überprüft, ob die Zeichenfolge auf der linken Seite kleiner oder gleich der Zeichenfolge auf der rechten Seite ist. Wenn dies der Fall ist, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben. | ($a le $b) gibt true zurück |
| ge | Überprüft, ob die Zeichenfolge auf der linken Seite größer oder gleich der Zeichenfolge auf der rechten Seite ist. Wenn dies der Fall ist, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben. | ($a ge $b) gibt false zurück. |
| Gl | Überprüft, ob die Zeichenfolge links mit der Zeichenfolge rechts übereinstimmt. Wenn ja, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben. | ($a eq $b) gibt false zurück. |
| ne | Überprüft, ob die Zeichenfolge links nicht mit der Zeichenfolge rechts übereinstimmt. Wenn ja, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben. | ($a ne $b) gibt true zurück |
| cmp | Gibt 1 zurück, wenn die Zeichenfolge links größer als die Zeichenfolge rechts ist, 0, wenn sie gleich ist, und -1, wenn die Zeichenfolge links kleiner als die Zeichenfolge rechts ist. | ($a cmp $b) gibt -1 zurück. |
Das Ausgabeergebnis der Ausführung des obigen Programms ist:
$a = abc, $b = xyzabc lt $b gibt true zurück$a gt $b gibt false zurück$a le $b gibt true zurück$a ge $b gibt false zurück$a ne $b gibt true zurück$a cmp $b gibt -1 zurück
Im Tabellenbeispiel setzen wir die Variablen $a auf 10 und $b auf 20.
| Operator | beschreiben | Beispiel |
|---|---|---|
| = | Einfacher Zuweisungsoperator, der den Wert des rechten Operanden dem linken Operanden zuweist | $c = $a + $b weist $c den Wert von $a + $b zu |
| += | Der Additions- und Zuweisungsoperator weist das Ergebnis der Addition des rechten Operanden zum linken Operanden dem linken Operanden zu. | $c += $a ist gleich $c = $c + $a |
| -= | Der Subtraktions-UND-Zuweisungsoperator weist das Ergebnis der Subtraktion des rechten Operanden vom linken Operanden dem linken Operanden zu. | $c -= $a ist gleich $c = $c - $a |
| *= | Der Multiplikations- und Zuweisungsoperator weist das Ergebnis der Multiplikation des rechten Operanden mit dem linken Operanden dem linken Operanden zu. | $c *= $a ist gleich $c = $c * $a |
| /= | Der Divisions- und Zuweisungsoperator weist das Ergebnis der Division des linken Operanden durch den rechten Operanden dem linken Operanden zu. | $c /= $a ist gleich $c = $c / $a |
| %= | Modulo- und Zuweisungsoperator, ermittelt den Modulus zweier Operanden und weist ihn dem linken Operanden zu | $c %= $a entspricht $c = $c % a |
| **= | Der Potenzierungs- und Zuweisungsoperator ermittelt die Potenz der beiden Operanden und weist sie dem linken Operanden zu. | $c **= $a ist äquivalent zu $c = $c ** $a |
Das Ausgabeergebnis der Ausführung des obigen Programms ist:
$a = 10, $b = 20. Nach der Zuweisung, $c = 30$c = 40, Operationsanweisung $c += $a$c = 30, Operationsanweisung $c -= $a$c = 300, Operationsanweisung $c *= $a$c = 30, Operationsanweisung $c /= $a$c = 0, Operationsanweisung $c %= $a$a = 4, $c = 2$c = 16, Operationsanweisung $c **= $a
Bitweise Operatoren bearbeiten Bits und führen Operationen Stück für Stück aus.
Wenn man $a = 60, $b = 13 setzt, jetzt im Binärformat, sehen sie so 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 | beschreiben | Beispiel |
|---|---|---|
| & | Der binäre UND-Operator kopiert ein Bit in das Ergebnis, wenn beide Operanden vorhanden sind. | ($a & $b) ergibt 12, was im Binärformat 0000 1100 ist |
| | | Der binäre ODER-Operator kopiert ein Bit in das Ergebnis, sofern es in einem der Operanden vorhanden ist. | ($a | $b) erhält 61, was binär 0011 1101 ist |
| ^ | Der binäre XOR-Operator kopiert ein Bit in das Ergebnis, wenn es in einem der Operanden vorhanden ist, aber nicht in beiden. | ($a ^ $b) ergibt 49, was im Binärformat 0011 0001 ist |
| ~ | Der binäre Einserkomplementoperator ist ein unärer Operator, der die Wirkung hat, Bits umzudrehen, d. h. 0 wird zu 1 und 1 wird zu 0. | (~$a ) ergibt -61, was binär 1100 0011 ist, der Einserkomplementform einer vorzeichenbehafteten Binärzahl. |
| << | Binärer Linksverschiebungsoperator. Der Wert des linken Operanden wird um die vom rechten Operanden angegebene Anzahl von Bits nach links verschoben. | $a << 2 ergibt 240, was im Binärformat 1111 0000 entspricht |
| >> | Binärer Rechtsverschiebungsoperator. Der Wert des linken Operanden wird um die vom rechten Operanden angegebene Anzahl von Bits nach rechts verschoben. | $a >> 2 ergibt 15, was im Binärformat 0000 1111 ist |
Das Ausgabeergebnis der Ausführung 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
Die logischen Perl-Operatoren sind in der folgenden Tabelle aufgeführt.
Im Tabellenbeispiel setzen wir die Variable $a auf true und $b auf false.
| Operator | beschreiben | Beispiel |
|---|---|---|
| Und | Logischer UND-Operator. Wenn beide Operanden wahr sind, ist die Bedingung wahr. | ($a und $b) ist falsch. |
| && | Logischer UND-Operator im C-Stil. Die Bedingung ist wahr, wenn beide Operanden wahr sind | ($a && $b) ist falsch. |
| oder | Logischer ODER-Operator. Die Bedingung ist wahr, wenn einer der beiden Operanden ungleich Null ist. | ($a oder $b) ist wahr. |
| || | Logischer ODER-Operator im C-Stil. Die Bedingung ist wahr, wenn einer der beiden Operanden ungleich Null ist. | ($a || $b) ist wahr. |
| nicht | Logischer NOT-Operator. Wird verwendet, um den logischen Zustand des Operanden umzukehren. Wenn die Bedingung wahr ist, wird sie durch den logischen NOT-Operator falsch gemacht. | not($a and $b) ist wahr. |
Das Ausgabeergebnis der Ausführung des obigen Programms ist:
$a = true , $b = false$a und $b = false$a && $b = false$a oder $b = true$a ||
Die Perl-Anführungszeichenoperatoren sind in der folgenden Tabelle aufgeführt.
| Operator | beschreiben | Beispiel |
|---|---|---|
| Q{ } | Fügen Sie der Zeichenfolge einfache Anführungszeichen hinzu | q{abcd} ergibt 'abcd' |
| qq{ } | Fügen Sie der Zeichenfolge doppelte Anführungszeichen hinzu | qq{abcd} ergibt „abcd“ |
| qx{ } | Backticks zur Zeichenfolge hinzufügen | qx{abcd} ergibt „abcd“. |
Das Ausgabeergebnis der Ausführung des obigen Programms ist:
q{a = $a} = a = $aqq{a = $a} = a = 10qx{date} = Freitag, 10. Juni 2016 16:22:33 CSTZusätzlich zu den oben genannten Operatoren unterstützt Perl auch die folgenden Operatoren:
| Operator | beschreiben | Beispiel |
|---|---|---|
| . | Der Punkt (.) wird verwendet, um zwei Zeichenfolgen zu verketten. | Wenn $a="run", $b="oob" , ist das Ergebnis von $a.$b "codercto" |
| X | Der x-Operator gibt die Häufigkeit zurück, mit der eine Zeichenfolge wiederholt wird. | ('-' x 3) Die Ausgabe ist ---. |
| .. | .. ist der Bereichsoperator. | (2..5) Das Ausgabeergebnis ist (2, 3, 4, 5) |
| ++ | Inkrementoperator, ganzzahliger Wert erhöht sich um 1 | $a =10, $a++ gibt 11 aus |
| -- | Dekrementoperator, dekrementiert einen ganzzahligen Wert um 1 | $a =10, $a-- die Ausgabe ist 9 |
| -> | Pfeile werden verwendet, um Methoden einer Klasse anzugeben | $obj->$a repräsentiert die $a-Methode des Objekts $obj. |
Das Ausgabeergebnis der Ausführung des obigen Programms ist:
$a = run , $b = oob$a . $b = codercto"-" x 3 = ---(2..5) = 2 3 4 5$a = 10 , $b = 15$a $a++ ausführen = 11$b führe $b-- = 14 aus
Die folgende Tabelle listet die Operatorpriorität der Perl-Sprache auf:
| Operator | Assoziativität |
|---|---|
| ++, -- | keiner |
| -, ~, ! | 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, | keiner |
| <, <=, >, >=, 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 |
| ? Und : | von rechts nach links |
| =, +=, -=, *=, | von rechts nach links |
| andere | |
| , | von links nach rechts |
| nicht | von links nach rechts |
| Und | von links nach rechts |
| oder, xor | von links nach rechts |
Das Ausgabeergebnis der Ausführung 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 = 50