Najlepszy samouczek Operatorzy Perl W 2024 r. W tym samouczku możesz dowiedzieć się operatory arytmetyczne,porównanie,Operatory przypisania,bitowe,Operatory logiczne,operacja cytaty,inni operatorzy,Priorytet operatorów,
Operator informuje kompilator do wykonywania określonej symboli matematycznych lub logicznych operacji takich jak: 3 + 2 = 5.
język Perl zbudowany bogactwo operatorów, przyjrzymy się kilku często:
Przykładem Formularz możemy ustawić zmienną $ a wynosi 10, $ b 20.
operatorzy | opis | Przykłady |
---|---|---|
+ | żmija | $ A + $ B 30 Wyniki |
- | odejmowanie | $ A - $ b wyniku jest -10 |
* | mnożenie | $ A * $ B 200 wyników |
/ | podział | $ B / $ wynik 2 |
% | operacja modulo, pozostała po podzielna | $% $ B wynikiem jest 0 |
** | potęgowanie | $ A ** $ b 10 wyników zasilające 20 th |
#!/usr/bin/perl $a = 10; $b = 20; print "\$a = $a , \$b = $b\n"; $c = $a + $b; print '$a + $b = ' . $c . "\n"; $c = $a - $b; print '$a - $b = ' . $c . "\n"; $c = $a * $b; print '$a * $b = ' . $c . "\n"; $c = $a / $b; print '$a / $b = ' . $c . "\n"; $c = $a % $b; print '$a % $b = ' . $c. "\n"; $a = 2; $b = 4; $c = $a ** $b; print '$a ** $b = ' . $c . "\n";
Wyjście powyżej wykonywanie programu jest:
$a = 10 , $b = 20 $a + $b = 30 $a - $b = -10 $a * $b = 200 $a / $b = 0.5 $a % $b = 10 $a ** $b = 16
Przykładem Formularz możemy ustawić zmienną $ a wynosi 10, $ b 20.
operatorzy | opis | Przykłady |
---|---|---|
== | Sprawdź wartość obu operandów są równe, jeśli są one równe, to warunek jest prawdziwy, w przeciwnym razie false. | ($ A == $ b) jest fałszywe |
! = | Sprawdź wartość obu operandów są równe, jeśli nie równe warunek jest spełniony, w przeciwnym razie false. | ($ A! = $ B) jest prawdziwe. |
<=> | Sprawdzić wartość obu operandów są równe, jeśli liczba jest mniejsza niż liczba na lewo od prawej zwracają -1 return 0, jeśli są one równe, jeśli liczba jest większa niż liczba po lewej stronie, po prawej powrotu 1. | ($ A $ <=> b) return -1. |
> | Sprawdzić wartość lewego argumentu jest większa niż wartość prawego argumentu, a jeśli warunek jest spełniony, w przeciwnym wypadku błędne. | ($ A> $ b) zwraca false. |
< | Sprawdzić wartość lewego argumentu operacji jest mniejsze od wartości prawego argumentu, a jeśli warunek jest spełniony, w przeciwnym wypadku błędne. | ($ A <$ b) zwraca true. |
> = | Sprawdzić wartość lewego argumentu jest większa niż lub równa wartości prawego argumentu, a jeśli warunek jest spełniony, w przeciwnym wypadku błędne. | ($ A> = $ b) zwraca false. |
<= | Sprawdzić wartość lewego argumentu jest mniejsza niż lub równa wartości prawego argumentu, a jeśli warunek jest spełniony, w przeciwnym wypadku błędne. , | ($ A <= $ b) zwraca true. |
#!/usr/bin/perl $a = 10; $b = 20; print "\$a = $a , \$b = $b\n"; if( $a == $b ){ print "$a == \$b 结果 true\n"; }else{ print "\$a == \$b 结果 false\n"; } if( $a != $b ){ print "\$a != \$b 结果 true\n"; }else{ print "\$a != \$b 结果 false\n"; } $c = $a <=> $b; print "\$a <=> \$b 返回 $c\n"; if( $a > $b ){ print "\$a > \$b 结果 true\n"; }else{ print "\$a > \$b 结果 false\n"; } if( $a >= $b ){ print "\$a >= \$b 结果 true\n"; }else{ print "\$a >= \$b 结果 false\n"; } if( $a < $b ){ print "\$a < \$b 结果 true\n"; }else{ print "\$a < \$b 结果 false\n"; } if( $a <= $b ){ print "\$a <= \$b 结果 true\n"; }else{ print "\$a <= \$b 结果 false\n"; }
Wyjście powyżej wykonywanie programu jest:
$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
Poniższa tabela instancji zmiennej $ a jest ustawiony na "abc", $ b, aby "xyz", a następnie użyć operator porównania do obliczania wyników.
operatorzy | opis | Przykłady |
---|---|---|
lt | Sprawdź, czy ciąg znaków po lewej stronie jest mniejszy niż ciąg na prawo do zwrotu, jeśli prawdą jest, w przeciwnym razie false. | ($ A $ lt b) zwraca true. |
gt | Sprawdź, czy ciąg znaków po lewej stronie jest większa niż napis na prawa do powrotu, jeśli prawdą jest, w przeciwnym razie false. | ($ GT $ b) zwraca false. |
le | Sprawdź, czy ciąg znaków po lewej stronie jest mniejszy lub równy ciąg po prawej stronie, jeśli zwróci true, w przeciwnym razie zwraca false. | ($ A $ le b) Zwraca true |
ge | Sprawdź, czy ciąg znaków po lewej stronie jest większa lub równa ciąg po prawej stronie, jeśli zwróci true, w przeciwnym razie zwraca false. | ($ A $ ge b) zwraca false. |
eq | Sprawdź, czy ciąg jest równy ciąg na lewej do prawej, czy to jest powrót prawdą, w przeciwnym razie zwraca false. | ($ A eq $ b) zwraca false. |
ne | Sprawdzić ciąg po lewej stronie nie jest równy ciąg na prawo do zwrotu, jeśli prawdą jest, w przeciwnym razie false. | ($ A $ ne b) Zwraca true |
CMP | Jeśli łańcuch jest większa niż prawo lewej ciąg zwraca 1, jeśli są one równe zwraca 0 jeśli ciąg jest ciągiem po prawej stronie lewej jest mniejszy niż -1. | ($ A $ cmp b) return -1. |
#!/usr/bin/perl $a = "abc"; $b = "xyz"; print "\$a = $a ,\$b = $b\n"; if( $a lt $b ){ print "$a lt \$b 返回 true\n"; }else{ print "\$a lt \$b 返回 false\n"; } if( $a gt $b ){ print "\$a gt \$b 返回 true\n"; }else{ print "\$a gt \$b 返回 false\n"; } if( $a le $b ){ print "\$a le \$b 返回 true\n"; }else{ print "\$a le \$b 返回 false\n"; } if( $a ge $b ){ print "\$a ge \$b 返回 true\n"; }else{ print "\$a ge \$b 返回 false\n"; } if( $a ne $b ){ print "\$a ne \$b 返回 true\n"; }else{ print "\$a ne \$b 返回 false\n"; } $c = $a cmp $b; print "\$a cmp \$b 返回 $c\n";
Wyjście powyżej wykonywanie programu jest:
$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
Przykładem Formularz możemy ustawić zmienną $ a wynosi 10, $ b 20.
operatorzy | opis | Przykłady |
---|---|---|
= | Proste operator przypisania, wartość argumentu po prawej do lewej argumentu | $ C = $ a + $ b $ a + $ b przypisze wartość $ c |
+ = | Kanadyjski i zadanie operatora, wynik dodawania lewy argument w prawym argumencie przypisany do lewego argumentu | $ C + = $ a jest równe $ c = $ c $ a + |
- = | Zapisz i operatory przypisania, lewy argument do prawego argumentu odejmuje przypisać wynik do lewego operandu | $ C - = $ a jest równe $ c = $ c - $ a |
* = | Mnożenie i operator przypisania, prawo lewego operandu jest mnożona przez operand przypisać wynik lewego operandu | $ C * = $ a jest równe $ c = $ c * $ a |
/ = | W operatorów dodawania i przypisania, lewy argument podzielony przez prawo argumentu przypisać wynik lewego operandu | $ C / = $ a jest równe $ c = $ c / $ a |
% = | Modulo i operator przypisania, suma dwóch liczb formy przypisane do lewego operandu | $ C% = $ a jest równe $ c = $ c% A |
** = | Potęgowanie i przypisanie operatora, suma dwóch liczb, pomnożona przez moc przypisanej do lewego operandu | $ C ** = $ a jest równe $ c = $ C ** $ a |
#!/usr/bin/perl $a = 10; $b = 20; print "\$a = $a ,\$b = $b\n"; $c = $a + $b; print "赋值后 \$c = $c\n"; $c += $a; print "\$c = $c ,运算语句 \$c += \$a\n"; $c -= $a; print "\$c = $c ,运算语句 \$c -= \$a\n"; $c *= $a; print "\$c = $c ,运算语句 \$c *= \$a\n"; $c /= $a; print "\$c = $c ,运算语句 \$c /= \$a\n"; $c %= $a; print "\$c = $c ,运算语句 \$c %= \$a\n"; $c = 2; $a = 4; print "\$a = $a , \$c = $c\n"; $c **= $a; print "\$c = $c ,运算语句 \$c **= \$a\n";
Wyjście powyżej wykonywanie programu jest:
$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
Bitwise podmioty działające na trochę, a bit po operacji bitowej.
Ustawienie $ a = 60, b = 13 $, obecnie reprezentowana w formacie binarnym, są one w następujący sposób:
$a = 0011 1100 $b = 0000 1101 ----------------- $a&$b = 0000 1100 $a|$b = 0011 1101 $a^$b = 0011 0001 ~$a = 1100 0011
podtrzymujące bitowe Perl symbole w następujący sposób:
operatorzy | opis | Przykłady |
---|---|---|
& | Jeśli oba występują w dwóch argumentów, binarny operator AND skopiować wynik. | ($ A & $ b) byłoby 12 do binarnego 0000 1100 |
| | Jeśli jest obecny w każdym argumencie, binarny operator OR skopiować wynik. | ($ A | $ b) byłoby 61, binarna jest 00.111.101 |
^ | Jeśli jest obecny w jednym z argumentu, ale nie jednocześnie istnieje w dwóch liczb binarnych operatora XOR kopii do wyniku. | ($ A $ ^ b) byłoby 49, binarna jest 00.110.001 |
~ | Dwójki Operator uzupełnieniem jest jednoargumentowy operator jest "klapka" efekt położenia. | (~ $ A) byłoby -61, binarny 1100 Formularz 0011 dopełnienie liczby binarnej ze znakiem. |
<< | Binary lewej operatora przesunięcia. Wartość lewego argumentu, aby przejść w lewo i prawo argument określonej liczby cyfr. | $ A << 2 będzie 240, binarny jest 11.110.000 |
>> | Binary operatora przesunięcia w prawo. Wartość lewego argumentu przesunąć prawy argument określoną liczbę bitów w prawo. | $ A >> 2 będzie 15, binarna 0000 1111 |
#!/usr/bin/perl use integer; $a = 60; $b = 13; print "\$a = $a , \$b = $b\n"; $c = $a & $b; print "\$a & \$b = $c\n"; $c = $a | $b; print "\$a | \$b = $c\n"; $c = $a ^ $b; print "\$a ^ \$b = $c\n"; $c = ~$a; print "~\$a = $c\n"; $c = $a << 2; print "\$a << 2 = $c\n"; $c = $a >> 2; print "\$a >> 2 = $c\n";
Wyjście powyżej wykonywanie programu jest:
$a = 60 , $b = 13 $a & $b = 12 $a | $b = 61 $a ^ $b = 49 ~$a = -61 $a << 2 = 240 $a >> 2 = 15
Perl operatory logiczne w poniższej tabeli.
Przykładem Formularz możemy ustawić zmienną $ a jest prawdą, $ b jest fałszywe.
operatorzy | opis | Przykłady |
---|---|---|
i | Logiczne AND Operator Operator. Jeśli oba argumenty są prawdziwe, warunek jest spełniony. | ($ A i $ b) jest fałszywe. |
&& | C-style operator logiczny i operatora. Jeśli oba argumenty są prawdziwe, warunek jest prawdziwy | ($ A && $ b) jest fałszywe. |
lub | Logiczne OR Operator. Jeśli oba argumenty mają dowolną niezerową, warunek jest spełniony. | ($ A lub $ b) jest prawdziwe. |
|| | C-style Logiczne OR Operator. Jeśli oba argumenty mają dowolną niezerową, warunek jest spełniony. | ($ A || $ b) jest prawdziwe. |
nie | Logiczne NOT Operator. To odwraca stan logiczny argument. Jeśli warunek jest prawdziwy, nie operator logiczny zrobi to false. | Nie ($ a, $ b) jest prawdziwe. |
#!/usr/bin/perl $a = true; $b = false; print "\$a = $a , \$b = $b\n"; $c = ($a and $b); print "\$a and \$b = $c\n"; $c = ($a && $b); print "\$a && \$b = $c\n"; $c = ($a or $b); print "\$a or \$b = $c\n"; $c = ($a || $b); print "\$a || \$b = $c\n"; $a = 0; $c = not($a); print "not(\$a)= $c\n";
Wyjście powyżej wykonywanie programu jest:
$a = true , $b = false $a and $b = false $a && $b = false $a or $b = true $a || $b = true not($a)= 1
Perl cytuje operatorów w poniższej tabeli.
operatorzy | opis | Przykłady |
---|---|---|
q {} | Łańcuch z jednym cytatem | q {ABCD} wyniki dla "abcd" |
qq {} | Ciąg cudzysłowach | qq {} ABCD wyniki dla "abcd" |
QX {} | Łańcuch z małe cudzysłowy | QX {ABCD} wynikiem jest `abcd` |
#!/usr/bin/perl $a = 10; $b = q{a = $a}; print "q{a = \$a} = $b\n"; $b = qq{a = $a}; print "qq{a = \$a} = $b\n"; # 使用 unix 的 date 命令执行 $t = qx{date}; print "qx{date} = $t\n";
Wyjście powyżej wykonywanie programu jest:
q{a = $a} = a = $a qq{a = $a} = a = 10 qx{date} = 2016年 6月10日 星期五 16时22分33秒 CST
Oprócz wyżej wspomnieliśmy operatorzy zewnątrz, Perl obsługuje również następujące podmioty:
operatorzy | opis | Przykłady |
---|---|---|
, | Dot (.) Służy do łączenia dwóch ciągów. | Jeśli $ a = "run", $ b = "OOB", $ a. $ B wyniki dla "w3big" |
x | x operator zwraca ciąg powtórzeń. | ( '-' X 3) wyjście jest ---. |
pl | pl W wielu operatorów. | (2pl5) Wyjście jest (2, 3, 4, 5) |
++ | Operator inkrementacji, wartość całkowita jest zwiększany o 1 | $ A = 10, $ a ++ wyświetli 11 |
- | Operatorzy Dół, wartość całkowita pomniejszona o 1 | $ A = 10, $ A-- wyjście 9 |
-> | Określ metodę klasy dla Strzałka | $ Obj -> $ reprezentację obiektu $ obj $ metody. |
#!/usr/bin/perl $a = "run"; $b = "oob"; print "\$a = $a , \$b = $b\n"; $c = $a . $b; print "\$a . \$b = $c\n"; $c = "-" x 3; print "\"-\" x 3 = $c\n"; @c = (2pl5); print "(2pl5) = @c\n"; $a = 10; $b = 15; print "\$a = $a , \$b = $b\n"; $a++; $c = $a ; print "\$a 执行 \$a++ = $c\n"; $b--; $c = $b ; print "\$b 执行 \$b-- = $c\n";
Wyjście powyżej wykonywanie programu jest:
$a = run , $b = oob $a . $b = w3big "-" x 3 = --- (2pl5) = 2 3 4 5 $a = 10 , $b = 15 $a 执行 $a++ = 11 $b 执行 $b-- = 14
Poniższa tabela zawiera listę języków Perl operatora pierwszeństwo:
operator operatorzy | wiążący |
---|---|
++ - | nie |
- ~ ,! | Od prawej do lewej |
** | Od prawej do lewej |
= ~! ~ | Od lewej do prawej |
*, /,% X | Od lewej do prawej |
+ - ,. | Od lewej do prawej |
<< >> | Od lewej do prawej |
-e, -R, | nie |
<, <=,>,> =, Lt, le, gt, ge | Od lewej do prawej |
== ,! =, <=>, Eq, ne, CMP | Od lewej do prawej |
& | Od lewej do prawej |
| ^ | Od lewej do prawej |
&& | Od lewej do prawej |
|| | Od lewej do prawej |
pl | Od lewej do prawej |
? A: | Od prawej do lewej |
= + =, - =, * =, | Od prawej do lewej |
inny | |
, | Od lewej do prawej |
nie | Od lewej do prawej |
i | Od lewej do prawej |
lub xor | Od lewej do prawej |
#!/usr/bin/perl $a = 20; $b = 10; $c = 15; $d = 5; $e; print "\$a = $a, \$b = $b, \$c = $c ,\$d = $d\n"; $e = ($a + $b) * $c / $d; print "(\$a + \$b) * \$c / \$d = $e\n"; $e = (($a + $b) * $c )/ $d; print "((\$a + \$b) * \$c) / \$d = $e\n"; $e = ($a + $b) * ($c / $d); print "(\$a + \$b) * (\$c / \$d ) = $e\n"; $e = $a + ($b * $c ) / $d; print "\$a + (\$b * \$c )/ \$d = $e\n";
Wyjście powyżej wykonywanie programu jest:
$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