연산자는 컴파일러에게 3+2=5와 같은 특정 수학적 또는 논리적 연산을 수행하도록 지시하는 기호입니다.
Perl 언어에는 다양한 내장 연산자가 있습니다. 일반적으로 사용되는 연산자 중 일부를 살펴보겠습니다.
산술 연산자
비교 연산자
논리 연산자
할당 연산자
비트 연산자
견적 연산자
기타 운영자
연산자 우선순위
테이블 예에서는 변수 $a를 10으로, $b를 20으로 설정했습니다.
연산자 | 설명하다 | 예 |
---|---|---|
+ | 덧셈 | $a + $b 결과는 30입니다. |
- | 빼기 | $a - $b 결과는 -10입니다. |
* | 곱셈 | $a * $b 결과는 200입니다. |
/ | 부문운영 | $b / $a 결과는 2입니다. |
% | 나머지 연산, 정수 나누기 후 나머지 찾기 | $b % $a 결과는 0입니다. |
** | 곱셈하여 거듭제곱 | $a**$b의 결과는 10의 20승입니다. |
위 프로그램의 실행 결과는 다음과 같습니다.
$a = 10 , $b = 20$a + $b = 30$a - $b = -10$a * $b = 200$a / $b = 0.5$a % $b = 10$a ** $ b = 16
테이블 예에서는 변수 $a를 10으로, $b를 20으로 설정했습니다.
연산자 | 설명하다 | 예 |
---|---|---|
== | 두 피연산자의 값이 같은지 확인하여 같으면 조건이 true이고, 그렇지 않으면 false입니다. | ($a == $b)는 거짓입니다. |
!= | 두 피연산자의 값이 같은지 확인하고, 같지 않으면 조건이 true이고, 그렇지 않으면 false입니다. | ($a != $b)는 참입니다. |
<=> | 두 피연산자의 값이 같은지 확인하여 왼쪽의 숫자가 오른쪽의 숫자보다 작으면 -1, 같으면 0, 왼쪽의 숫자가 숫자보다 크면 1을 반환합니다. 오른쪽에. | ($a <=> $b)는 -1을 반환합니다. |
> | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 큰지 확인하여, 그렇다면 조건은 true이고, 그렇지 않으면 false입니다. | ($a > $b)는 false를 반환합니다. |
< | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작은지 확인하고, 작으면 조건이 true이고, 그렇지 않으면 false를 반환합니다. | ($a < $b)는 true를 반환합니다. |
>= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같은지 확인하고, 그렇다면 조건은 true이고, 그렇지 않으면 false를 반환합니다. | ($a >= $b)는 false를 반환합니다. |
<= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같은지 확인하고, 그렇다면 조건은 true이고, 그렇지 않으면 false를 반환합니다. . | ($a <= $b)는 true를 반환합니다. |
위 프로그램의 실행 결과는 다음과 같습니다.
$a = 10 , $b = 20$a == $b 결과는 false입니다$a != $b 결과는 true입니다$a <=> $b Return -1$a > $b 결과는 false$a입니다. >= $b 결과는 false입니다. $a < $b 결과는 true$a <= $b 결과는 true입니다.
다음 표 예에서는 변수 $a를 "abc"로, $b를 "xyz"로 설정한 다음 비교 연산자를 사용하여 결과를 계산합니다.
연산자 | 설명하다 | 예 |
---|---|---|
lt | 왼쪽 문자열이 오른쪽 문자열보다 작은지 확인하고, 작으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. | ($a lt $b)는 true를 반환합니다. |
gt | 왼쪽의 문자열이 오른쪽의 문자열보다 큰지 확인하고, 그렇다면 true를 반환하고, 그렇지 않으면 false를 반환합니다. | ($a gt $b)는 false를 반환합니다. |
르 | 왼쪽 문자열이 오른쪽 문자열보다 작거나 같은지 확인하고, 그렇다면 true를 반환하고, 그렇지 않으면 false를 반환합니다. | ($a le $b)는 true를 반환합니다. |
게 | 왼쪽 문자열이 오른쪽 문자열보다 크거나 같은지 확인하고, 같으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. | ($a ge $b)는 false를 반환합니다. |
eq | 왼쪽 문자열이 오른쪽 문자열과 같은지 확인하여 일치하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. | ($a eq $b)는 false를 반환합니다. |
네 | 왼쪽 문자열이 오른쪽 문자열과 같지 않은지 확인하여 일치하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. | ($a ne $b)는 true를 반환합니다. |
cmp | 왼쪽 문자열이 오른쪽 문자열보다 크면 1을 반환하고, 같으면 0을 반환하며, 왼쪽 문자열이 오른쪽 문자열보다 작으면 -1을 반환합니다. | ($a cmp $b)는 -1을 반환합니다. |
위 프로그램의 실행 결과는 다음과 같습니다.
$a = abc, $b = xyzabc lt $b는 true를 반환합니다.$a gt $b는 false$a를 반환합니다. le $b는 true$a를 반환합니다. ge $b는 false$a를 반환합니다. $b는 true$a를 반환합니다. cmp $b는 -1을 반환합니다.
테이블 예에서는 변수 $a를 10으로, $b를 20으로 설정했습니다.
연산자 | 설명하다 | 예 |
---|---|---|
= | 단순 할당 연산자, 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당합니다. | $c = $a + $b는 $a + $b의 값을 $c에 할당합니다. |
+= | 더하기 및 할당 연산자는 왼쪽 피연산자에 오른쪽 피연산자를 더한 결과를 왼쪽 피연산자에 할당합니다. | $c += $a는 $c = $c + $a와 같습니다. |
-= | 빼기 AND 할당 연산자는 왼쪽 피연산자에서 오른쪽 피연산자를 뺀 결과를 왼쪽 피연산자에 할당합니다. | $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와 동일합니다. |
위 프로그램의 실행 결과는 다음과 같습니다.
$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
Perl에서 지원하는 비트 연산자는 다음 표에 나와 있습니다.
연산자 | 설명하다 | 예 |
---|---|---|
& | 이진 AND 연산자는 두 피연산자가 모두 있는 경우 결과에 1비트를 복사합니다. | ($a & $b)는 12를 제공하며 이진수는 0000 1100입니다. |
| | 이진 OR 연산자는 피연산자 중 하나에 존재할 경우 결과에 1비트를 복사합니다. | ($a | $b)는 61을 얻습니다. 이는 이진수로 0011 1101입니다. |
^ | 이진 XOR 연산자는 비트가 피연산자 중 하나에만 있고 둘 다에는 없는 경우 결과에 비트를 복사합니다. | ($a ^ $b)는 49를 제공하며 이진수는 0011 0001입니다. |
~ | 이항 1의 보수 연산자는 비트를 "뒤집는" 효과가 있는 단항 연산자입니다. 즉, 0은 1이 되고 1은 0이 됩니다. | (~$a )는 부호 있는 이진수의 1의 보수 형태인 이진수 1100 0011인 -61을 제공합니다. |
<< | 이진 왼쪽 시프트 연산자. 왼쪽 피연산자의 값은 오른쪽 피연산자가 지정한 비트 수만큼 왼쪽으로 이동합니다. | $a << 2 는 240을 제공하며 이는 이진수로 1111 0000입니다. |
>> | 이진 오른쪽 시프트 연산자. 왼쪽 피연산자의 값은 오른쪽 피연산자가 지정한 비트 수만큼 오른쪽으로 이동합니다. | $a >> 2는 15를 얻게 되며 이진수는 0000 1111입니다. |
위 프로그램의 실행 결과는 다음과 같습니다.
$a = 60 , $b = 13$a & $b = 12$a | $b = 61$a ^ $b = 49~$a = -61$a << 2 = 240$a >> 2 = 15
Perl 논리 연산자는 다음 표에 나와 있습니다.
테이블 예에서는 $a 변수를 true로 설정하고 $b를 false로 설정했습니다.
연산자 | 설명하다 | 예 |
---|---|---|
그리고 | 논리 AND 연산자. 두 피연산자가 모두 true이면 조건이 true입니다. | ($a 및 $b)는 거짓입니다. |
&& | C 스타일 논리 AND 연산자. 두 피연산자가 모두 참이면 조건은 참입니다. | ($a && $b)는 거짓입니다. |
또는 | 논리 OR 연산자. 두 피연산자 중 하나라도 0이 아니면 조건은 참입니다. | ($a 또는 $b)는 참입니다. |
|| | C 스타일 논리 OR 연산자. 두 피연산자 중 하나라도 0이 아니면 조건은 참입니다. | ($a || $b)는 참입니다. |
~ 아니다 | 논리 NOT 연산자. 피연산자의 논리적 상태를 반전시키는 데 사용됩니다. 조건이 참이면 논리 NOT 연산자는 이를 거짓으로 만듭니다. | not($a 및 $b)는 참입니다. |
위 프로그램의 실행 결과는 다음과 같습니다.
$a = true , $b = false$a 및 $b = false$a && $b = false$a 또는 $b = true$a ||
Perl 인용 연산자는 다음 표에 나와 있습니다.
연산자 | 설명하다 | 예 |
---|---|---|
q{ } | 문자열에 작은따옴표 추가 | q{abcd}의 결과는 'abcd'입니다. |
qq{ } | 문자열에 큰따옴표 추가 | qq{abcd}의 결과는 "abcd"입니다. |
qx{ } | 문자열에 백틱 추가 | qx{abcd} 결과는 'abcd'입니다. |
위 프로그램의 실행 결과는 다음과 같습니다.
q{a = $a} = a = $aqq{a = $a} = a = 10qx{날짜} = 2016년 6월 10일 금요일 16:22:33 CST
위에서 언급한 연산자 외에도 Perl은 다음 연산자도 지원합니다.
연산자 | 설명하다 | 예 |
---|---|---|
. | 마침표(.)는 두 문자열을 연결하는 데 사용됩니다. | $a="run", $b="oob" 인 경우 $a.$b의 결과는 "codercto"입니다. |
엑스 | x 연산자는 문자열이 반복되는 횟수를 반환합니다. | ('-' x 3) 출력은 ---입니다. |
.. | ..은 범위 연산자입니다. | (2..5) 출력 결과는 (2, 3, 4, 5)입니다. |
++ | 증분 연산자, 정수 값이 1씩 증가합니다. | $a =10, $a++는 11을 출력합니다. |
-- | 감소 연산자, 정수 값을 1씩 감소시킵니다. | $a =10, $a-- 출력은 9입니다. |
-> | 화살표는 클래스의 메소드를 지정하는 데 사용됩니다. | $obj->$a는 $obj 객체의 $a 메소드를 나타냅니다. |
위 프로그램의 실행 결과는 다음과 같습니다.
$a = 실행 , $b = oob$a . $b = codercto"-" x 3 = ---(2..5) = 2 3 4 5$a = 10 , $b = 15$a $a++ 실행 = 11$b 실행 $b-- = 14
다음 표에는 Perl 언어의 연산자 우선 순위가 나열되어 있습니다.
연산자 | 연관성 |
---|---|
++, -- | 없음 |
-, ~,! | 오른쪽에서 왼쪽으로 |
** | 오른쪽에서 왼쪽으로 |
=~, !~ | 왼쪽에서 오른쪽으로 |
*, /, %, x | 왼쪽에서 오른쪽으로 |
+, -, . | 왼쪽에서 오른쪽으로 |
<<, >> | 왼쪽에서 오른쪽으로 |
-e, -r, | 없음 |
<, <=, >, >=, lt, le, gt, ge | 왼쪽에서 오른쪽으로 |
==, !=, <=>, eq, ne, cmp | 왼쪽에서 오른쪽으로 |
& | 왼쪽에서 오른쪽으로 |
|, ^ | 왼쪽에서 오른쪽으로 |
&& | 왼쪽에서 오른쪽으로 |
|| | 왼쪽에서 오른쪽으로 |
.. | 왼쪽에서 오른쪽으로 |
? 그리고 : | 오른쪽에서 왼쪽으로 |
=, +=, -=, *=, | 오른쪽에서 왼쪽으로 |
다른 | |
, | 왼쪽에서 오른쪽으로 |
~ 아니다 | 왼쪽에서 오른쪽으로 |
그리고 | 왼쪽에서 오른쪽으로 |
또는 xor | 왼쪽에서 오른쪽으로 |
위 프로그램의 실행 결과는 다음과 같습니다.
$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