최고의 펄 연산자 튜토리얼 2024년, 이 튜토리얼에서는 산술 연산자,비교,할당 연산자,비트 컴퓨팅,논리 연산자,시세 조작,다른 연산자,연산자 우선 순위,를 배울 수 있습니다.
3 + 2 = 5 : 운영자는 다음과 같은 특정 수학이나 논리 연산 기호를 수행하도록 컴파일러에 지시합니다.
펄 언어는 사업자의 재산을 구축, 우리는 몇 가지 일반적인 보면 :
양식 예를 들어 우리는 변수 $ a가, $ B를 20 10로 설정합니다.
운영자 | 기술 | 예 |
---|---|---|
+ | 가산기 | $의 A + $의 B (30) 결과 |
- | 뺄셈 | $ A - 결과 B $ -10입니다 |
* | 곱셈 | A *의 $의 B (200) 결과를 $ |
/ | 분할 | $ B는 / 결과 2 $ |
% | 모듈로 연산은 나눌 후 나머지 | $의 B의 %는 결과가 0 인 $ |
** | 지수 | $ A를 ** $ B를 10 ~ 20 일 전원 결과 |
#!/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";
위의 프로그램 실행 출력은 다음과 같습니다
$a = 10 , $b = 20 $a + $b = 30 $a - $b = -10 $a * $b = 200 $a / $b = 0.5 $a % $b = 10 $a ** $b = 16
양식 예를 들어 우리는 변수 $ a가, $ B를 20 10로 설정합니다.
운영자 | 기술 | 예 |
---|---|---|
== | 그들은 조건이 true 다음 동일한 경우 두 피연산자의 값을 확인은, 그렇지 않은 경우는 false 동일하다. | 거짓 (A ==의 $ B에 $) |
! = | 동일하지 않은 조건에 해당하는 경우 두 피연산자의 값을 확인은, 그렇지 않은 경우는 false 동일하다. | ($ A는! = $ B는) 사실이다. |
<=> | 수가 리턴 (1)의 좌우에있는 번호보다 큰 경우, 그들이 동일한 경우 수가 리턴 -1 복귀 0 오른쪽 왼쪽의 숫자보다 작은 경우 두 피연산자의 값이 동일한 지 확인한다. | ($ A <=> $ 나) -1을 반환합니다. |
> | 왼쪽 피연산자의 값을 확인하여 권한 피연산자의 값 이상이고, 상태가 다르게 TRUE, FALSE 인 경우. | ($의 A> $의 b)는 false를 돌려줍니다. |
< | 왼쪽 피연산자의 값을 확인하면 오른쪽 피연산자의 값보다 작 및 조건은, 그렇지 않은 경우는 false에 해당하는 경우. | ($ A <$의 b)는 true를 돌려줍니다. |
> = | 왼쪽 피연산자의 값보다 크거나 오른쪽 피연산자의 값과 같습니다 확인하고 조건이, 그렇지 않은 경우는 false에 해당하는 경우. | ($의 A> = $ b를) false를 반환합니다. |
<= | 왼쪽 피연산자의 값보다 작거나 오른쪽 피연산자의 값과 같습니다 확인하고 조건이, 그렇지 않은 경우는 false에 해당하는 경우. . | ($ A는 <= $ b)는 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"; }
위의 프로그램 실행 출력은 다음과 같습니다
$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
다음 표 인스턴스 변수 $ A가 "ABC"$ B 로의 "XYZ"에 설정하고, 그 결과를 산출하는 비교 연산자를 사용한다.
운영자 | 기술 | 예 |
---|---|---|
LT | 왼쪽에있는 문자열, 그렇지 않은 경우는 false가 true의 경우, 돌려 오른쪽에있는 문자열보다 작 확인합니다. | true를 반환 (A 중위 $ B에 $). |
있다 | 그렇지 않은 경우는 false, 왼쪽에있는 문자열이 해당하는 경우 반환 오른쪽에있는 문자열보다 큰지 여부를 확인합니다. | false를 반환 (A GT는 $ B에 $). |
제작 | 그렇지 않은 경우는 false를 돌려,이 true를 돌려주는 경우 왼쪽에있는 문자열보다 작거나 오른쪽에있는 문자열과 동일 확인합니다. | ($ A 제작 : $ b)는 true를 돌려줍니다 |
GE의 | 가 true를 돌려주는 경우 왼쪽에있는 문자열보다 크거나 오른쪽에있는 문자열이 같은지 여부를, 그렇지 않은 경우는 false를 돌려 확인합니다. | ($ A GE의 $의 b)는 false를 돌려줍니다. |
EQ | 그렇지 않은 경우는 false를 돌려,이 true를 반환하는 경우 문자열이, 오른쪽으로 왼쪽에있는 문자열과 동일 확인합니다. | false를 반환 (A EQ의 $ B에 $). |
네브라스카 | 왼쪽에있는 문자열을 확인하면, 그렇지 않은 경우는 false가 true의 경우, 돌려 오른쪽에있는 문자열과 동일하지 않습니다. | true를 돌려줍니다 (A 북동 $ B에 $) |
CMP | 문자열이 왼쪽의 오른쪽에있는 문자열 인 경우가 동일한 수익률이 0 인 경우 문자열 왼쪽 문자열의 오른쪽은 1을 반환보다 큰 경우보다 -1이다. | ($ A CMP의 $의 b)는 -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";
위의 프로그램 실행 출력은 다음과 같습니다
$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
양식 예를 들어 우리는 변수 $ a가, $ B를 20 10로 설정합니다.
운영자 | 기술 | 예 |
---|---|---|
= | 단순 대입 연산자, 왼쪽 피연산자에 오른쪽 피연산자의 값 | $ C = $ A + $ $ B A +의 $ b를 $ (c)의 값을 할당합니다 |
+ = | 캐나다 대입 연산자 왼쪽 피연산자에 할당 오른쪽 피연산자 좌측 피연산자를 더한 결과 | $의 C + = $ a는 $ C = $ C + $ A와 동일 |
- = | 저장 및 대입 연산자는 오른쪽 피연산자의 왼쪽 피연산자는 왼쪽 피연산자의 결과에 할당 뺀다 | $ C - = $ a가 $와 동일한 C = $의 C - $ A |
* = | 왼쪽 피연산자에 결과를 할당 곱 및 대입 연산자, 왼쪽 피연산자의 권리는 피연산자를 곱 | $의 C * = $ a는 $ C = $ C의 *의 $ a를 동일하다 |
/ = | 또한 대입 연산자에서는, 피연산자의 오른쪽으로 나누어 왼쪽 피연산자 좌측 피연산자 결과를 할당 | $ C / = $ a는 $ C = $ C / $ A와 동일 |
(%) = | 모듈 및 대입 연산자, 왼쪽 피연산자에 할당 된 두 개의 피연산자 금형의 합 | $의 C % = $ a는 $ C = $ C % A와 동일 |
** = | 지수 및 대입 연산자 왼쪽 피연산자에 할당 된 전원을 곱한 두 피연산자의 합 | $의 C ** = $ a는 $ 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";
위의 프로그램 실행 출력은 다음과 같습니다
$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
비트 비트에 작용하는 연산자 및 비트 연산에 의해 비트.
다음과 같이 설정 $의 A = 60, $의 B = 13, 지금은 바이너리 포맷으로 표현, 그들은 다음과 같습니다
$a = 0011 1100 $b = 0000 1101 ----------------- $a&$b = 0000 1100 $a|$b = 0011 1101 $a^$b = 0011 0001 ~$a = 1100 0011
비트 컴퓨팅 지원 펄 심볼은 다음과 같습니다 :
운영자 | 기술 | 예 |
---|---|---|
및 | 모두 두 개의 피연산자에있는 경우, 이진 AND 연산자는 결과를 복사합니다. | ($ A & $ b를) 이진 0000 1100, 12 것 |
| | 피연산자에 존재하는 경우, 이진 OR 연산자는 결과를 복사합니다. | ($ A | B를 $) (61) 될는 바이너리 00,111,101이고 |
^ | 피연산자 중 하나에 존재할 수 있지만 동시에 두 개의 피연산자 이진 XOR 연산자의 결과에 복사본이 존재하는 경우. | 49 것이다 (A ^ $ b는 $)는 바이너리는 00110001입니다 |
~ | 조로 보수 연산자는 단항 연산자는 "플립"위치 효과입니다. | (~ $ A는) -61 기호 진수의 이진 1,100 0,011 보수 형태 일 것이다. |
<< | 이진 왼쪽 시프트 연산자. 왼쪽 피연산자의 값은 숫자의 지정된 번호를 왼쪽과 오른쪽 피연산자 이동합니다. | $ A << 2 240있을 것이다는, 바이너리는 11110000입니다 |
>> | 이진 오른쪽 시프트 연산자입니다. 왼쪽 피연산자의 값이 오른쪽으로 오른쪽 피연산자를 지정된 비트 수를 이동합니다. | 2 15 될 것입니다 $ A는 >>, 이진은 1111 0000 |
#!/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";
위의 프로그램 실행 출력은 다음과 같습니다
$a = 60 , $b = 13 $a & $b = 12 $a | $b = 61 $a ^ $b = 49 ~$a = -61 $a << 2 = 240 $a >> 2 = 15
다음 표에 펄 논리 연산자.
양식 예를 들어 우리는 $ B가 거짓이며, 변수 $ a는 사실이다 설정합니다.
운영자 | 기술 | 예 |
---|---|---|
과 | 논리 AND 연산자 연산자입니다. 두 피연산자에 해당하는 경우, 조건은 true입니다. | ($ A와 $ b)는 false입니다. |
&& | C 스타일의 논리 AND 연산자 연산자입니다. 두 피연산자에 해당하는 경우, 조건은 true입니다 | ($ A && $ b를) false입니다. |
또는 | 논리 OR 연산자입니다. 두 피연산자가 0이 아닌이있는 경우, 조건은 true입니다. | ($ A는 또는 $ b)는 사실이다. |
|| | C 스타일의 논리 OR 연산자입니다. 두 피연산자가 0이 아닌이있는 경우, 조건은 true입니다. | ($ A || $ B는) 사실이다. |
아니 | 논리 NOT 연산자. 이것은 오퍼랜드의 로직 상태를 반전시킨다. 조건이 참이면, 논리 not 연산자는 false로 만들 것입니다. | 하지 ($ a와 $ b)는 사실이다. |
#!/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";
위의 프로그램 실행 출력은 다음과 같습니다
$a = true , $b = false $a and $b = false $a && $b = false $a or $b = true $a || $b = true not($a)= 1
펄은 다음 표에 연산자를 인용한다.
운영자 | 기술 | 예 |
---|---|---|
Q {} | 작은 따옴표와 문자열 | 'ABCD'에 대한 Q {ABCD} 결과 |
전분기 {} | 큰 따옴표의 문자열 | "ABCD"에 대한 전분기 {ABCD} 결과 |
QX {} | 역 인용 부호와 문자열 | QX ABCD {} 결과는`이다 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";
위의 프로그램 실행 출력은 다음과 같습니다
q{a = $a} = a = $a qq{a = $a} = a = 10 qx{date} = 2016年 6月10日 星期五 16时22分33秒 CST
우리 연산자 외부 위에서 언급 한 외에, Perl은 또한 다음과 같은 연산자를 지원
운영자 | 기술 | 예 |
---|---|---|
. | 도트 (.) 두 문자열을 연결하는 데 사용됩니다. | = "실행", $ B를 = "OOB"$ a는, $ 경우. "w3big"에 대한 $의 B 결과 |
엑스 | X 운영자는 반복 문자열을 반환합니다. | ( '-'X 3) 출력 ---이다. |
ko | ko 연산자의 범위이다. | (2ko5) 출력은 (2, 3, 4, 5) |
++ | 단위 연산자는 정수 값은 1만큼 증분되고 | $ A = (10)는 ++를 출력 11 $ |
- | 감소 연산자는 정수 값은 1만큼 감소 | $ A = 10, 할까 ko 출력을 $ 9 |
-> | 화살표의 클래스 방법을 지정 | $의 Obj는 -> 개체 $의 OBJ의 $ 방법의 표현을 $. |
#!/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 = (2ko5); print "(2ko5) = @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";
위의 프로그램 실행 출력은 다음과 같습니다
$a = run , $b = oob $a . $b = w3big "-" x 3 = --- (2ko5) = 2 3 4 5 $a = 10 , $b = 15 $a 执行 $a++ = 11 $b 执行 $b-- = 14
다음 표는 펄 언어의 연산자 우선 순위를 나열합니다 :
연산자 연산자 | 제본 |
---|---|
++ - | 아니 |
-, ~ ,! | 오른쪽에서 왼쪽으로 |
** | 오른쪽에서 왼쪽으로 |
= ~! ~ | 왼쪽에서 오른쪽으로 |
*, /, %, X | 왼쪽에서 오른쪽으로 |
+, - ,. | 왼쪽에서 오른쪽으로 |
<< >> | 왼쪽에서 오른쪽으로 |
, -r, -e | 아니 |
<, <=,>,> =, 중위, 제작,있다, GE | 왼쪽에서 오른쪽으로 |
== ,! = <=>, 식, 네브라스카, CMP | 왼쪽에서 오른쪽으로 |
및 | 왼쪽에서 오른쪽으로 |
| ^ | 왼쪽에서 오른쪽으로 |
&& | 왼쪽에서 오른쪽으로 |
|| | 왼쪽에서 오른쪽으로 |
ko | 왼쪽에서 오른쪽으로 |
? 그리고 : | 오른쪽에서 왼쪽으로 |
=, + =, - =, * =, | 오른쪽에서 왼쪽으로 |
다른 | |
, | 왼쪽에서 오른쪽으로 |
아니 | 왼쪽에서 오른쪽으로 |
과 | 왼쪽에서 오른쪽으로 |
또는, XOR | 왼쪽에서 오른쪽으로 |
#!/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";
위의 프로그램 실행 출력은 다음과 같습니다
$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