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 CST
Zusä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