Latest web development tutorials

펄 연산자

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) 출력 ---이다.
.. .. 연산자의 범위이다. (2..5) 출력은 (2, 3, 4, 5)
++ 단위 연산자는 정수 값은 1만큼 증분되고 $ A = (10)는 ++를 출력 11 $
- 감소 연산자는 정수 값은 1만큼 감소 $ A = 10, 할까 .. 출력을 $ 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 = (2..5);
print "(2..5) = @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 = ---
(2..5) = 2 3 4 5
$a  = 10 , $b = 15
$a 执行 $a++ = 11
$b 执行 $b-- = 14

연산자 우선 순위

다음 표는 펄 언어의 연산자 우선 순위를 나열합니다 :

연산자 연산자 제본
++ - 아니
-, ~ ,! 오른쪽에서 왼쪽으로
** 오른쪽에서 왼쪽으로
= ~! ~ 왼쪽에서 오른쪽으로
*, /, %, X 왼쪽에서 오른쪽으로
+, - ,. 왼쪽에서 오른쪽으로
<< >> 왼쪽에서 오른쪽으로
, -r, -e 아니
<, <=,>,> =, 중위, 제작,있다, GE 왼쪽에서 오른쪽으로
== ,! = <=>, 식, 네브라스카, CMP 왼쪽에서 오른쪽으로
왼쪽에서 오른쪽으로
| ^ 왼쪽에서 오른쪽으로
&& 왼쪽에서 오른쪽으로
|| 왼쪽에서 오른쪽으로
.. 왼쪽에서 오른쪽으로
? 그리고 : 오른쪽에서 왼쪽으로
=, + =, - =, * =, 오른쪽에서 왼쪽으로
다른
, 왼쪽에서 오른쪽으로
아니 왼쪽에서 오른쪽으로
왼쪽에서 오른쪽으로
또는, 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