📜  Perl-运营商

📅  最后修改于: 2020-10-16 05:28:51             🧑  作者: Mango

• 算术运算符
• 平等经营者
• 逻辑运算符
• 赋值运算符
• 按位运算符
• 逻辑运算符
• 类引用运算符
• 杂项运算符

## Perl算术运算符

Sr.No. Operator & Description
1

Adds values on either side of the operator

Example − \$a + \$b will give 30

2

– (Subtraction)

Subtracts right hand operand from left hand operand

Example − \$a – \$b will give -10

3

* (Multiplication)

Multiplies values on either side of the operator

Example − \$a * \$b will give 200

4

/ (Division)

Divides left hand operand by right hand operand

Example − \$b / \$a will give 2

5

% (Modulus)

Divides left hand operand by right hand operand and returns remainder

Example − \$b % \$a will give 0

6

** (Exponent)

Performs exponential (power) calculation on operators

Example − \$a**\$b will give 10 to the power 20

## Perl平等运算符

Sr.No. Operator & Description
1

== (equal to)

Checks if the value of two operands are equal or not, if yes then condition becomes true.

Example − (\$a == \$b) is not true.

2

!= (not equal to)

Checks if the value of two operands are equal or not, if values are not equal then condition becomes true.

Example − (\$a != \$b) is true.

3

<=>

Checks if the value of two operands are equal or not, and returns -1, 0, or 1 depending on whether the left argument is numerically less than, equal to, or greater than the right argument.

Example − (\$a <=> \$b) returns -1.

4

> (greater than)

Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true.

Example − (\$a > \$b) is not true.

5

< (less than)

Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true.

Example − (\$a < \$b) is true.

6

>= (greater than or equal to)

Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true.

Example − (\$a >= \$b) is not true.

7

<= (less than or equal to)

Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true.

Example − (\$a <= \$b) is true.

Sr.No. Operator & Description
1

lt

Returns true if the left argument is stringwise less than the right argument.

Example − (\$a lt \$b) is true.

2

gt

Returns true if the left argument is stringwise greater than the right argument.

Example − (\$a gt \$b) is false.

3

le

Returns true if the left argument is stringwise less than or equal to the right argument.

Example − (\$a le \$b) is true.

4

ge

Returns true if the left argument is stringwise greater than or equal to the right argument.

Example − (\$a ge \$b) is false.

5

eq

Returns true if the left argument is stringwise equal to the right argument.

Example − (\$a eq \$b) is false.

6

ne

Returns true if the left argument is stringwise not equal to the right argument.

Example − (\$a ne \$b) is true.

7

cmp

Returns -1, 0, or 1 depending on whether the left argument is stringwise less than, equal to, or greater than the right argument.

Example − (\$a cmp \$b) is -1.

## Perl赋值运算符

Sr.No. Operator & Description
1

=

Simple assignment operator, Assigns values from right side operands to left side operand

Example − \$c = \$a + \$b will assigned value of \$a + \$b into \$c

2

+=

Add AND assignment operator, It adds right operand to the left operand and assign the result to left operand

Example − \$c += \$a is equivalent to \$c = \$c + \$a

3

-=

Subtract AND assignment operator, It subtracts right operand from the left operand and assign the result to left operand

Example − \$c -= \$a is equivalent to \$c = \$c – \$a

4

*=

Multiply AND assignment operator, It multiplies right operand with the left operand and assign the result to left operand

Example − \$c *= \$a is equivalent to \$c = \$c * \$a

5

/=

Divide AND assignment operator, It divides left operand with the right operand and assign the result to left operand

Example − \$c /= \$a is equivalent to \$c = \$c / \$a

6

%=

Modulus AND assignment operator, It takes modulus using two operands and assign the result to left operand

Example − \$c %= \$a is equivalent to \$c = \$c % a

7

**=

Exponent AND assignment operator, Performs exponential (power) calculation on operators and assign value to the left operand

Example − \$c **= \$a is equivalent to \$c = \$c ** \$a

## Perl按位运算符

\$ a = 0011 1100

\$ b = 0000 1101

—————–

\$ a＆\$ b = 0000 1100

\$ a | \$ b = 0011 1101

\$ a ^ \$ b = 0011 0001

〜\$ a = 1100 0011

Perl语言支持以下Bitwise运算符，假设\$ a = 60;和\$ b = 13

Sr.No. Operator & Description
1

&

Binary AND Operator copies a bit to the result if it exists in both operands.

Example − (\$a & \$b) will give 12 which is 0000 1100

2

|

Binary OR Operator copies a bit if it exists in eather operand.

Example − (\$a | \$b) will give 61 which is 0011 1101

3

^

Binary XOR Operator copies the bit if it is set in one operand but not both.

Example − (\$a ^ \$b) will give 49 which is 0011 0001

4

~

Binary Ones Complement Operator is unary and has the efect of ‘flipping’ bits.

Example − (~\$a ) will give -61 which is 1100 0011 in 2’s complement form due to a signed binary number.

5

<<

Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.

Example − \$a << 2 will give 240 which is 1111 0000

6

>>

Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand.

Example − \$a >> 2 will give 15 which is 0000 1111

## Perl逻辑运算符

Perl语言支持以下逻辑运算符。假设变量\$ a成立，变量\$ b成立，然后-

Sr.No. Operator & Description
1

and

Called Logical AND operator. If both the operands are true then then condition becomes true.

Example − (\$a and \$b) is false.

2

&&

C-style Logical AND operator copies a bit to the result if it exists in both operands.

Example − (\$a && \$b) is false.

3

or

Called Logical OR Operator. If any of the two operands are non zero then then condition becomes true.

Example − (\$a or \$b) is true.

4

||

C-style Logical OR operator copies a bit if it exists in eather operand.

Example − (\$a || \$b) is true.

5

not

Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false.

Example − not(\$a and \$b) is true.

## 类引用运算符

Perl语言支持以下类似Quote的运算符。在下表中，{}代表您选择的任何一对定界符。

Sr.No. Operator & Description
1

q{ }

Encloses a string with-in single quotes

Example − q{abcd} gives ‘abcd’

2

qq{ }

Encloses a string with-in double quotes

Example − qq{abcd} gives “abcd”

3

qx{ }

Encloses a string with-in invert quotes

Example − qx{abcd} gives `abcd`

## 杂项运算符

Perl语言支持以下杂类运算符。假设变量a持有10而变量b持有20然后-

Sr.No. Operator & Description
1

.

Binary operator dot (.) concatenates two strings.

Example − If \$a = “abc”, \$b = “def” then \$a.\$b will give “abcdef”

2

x

The repetition operator x returns a string consisting of the left operand repeated the number of times specified by the right operand.

Example − (‘-‘ x 3) will give —.

3

..

The range operator .. returns a list of values counting (up by ones) from the left value to the right value

Example − (2..5) will give (2, 3, 4, 5)

4

++

Auto Increment operator increases integer value by one

Example − \$a++ will give 11

5

Auto Decrement operator decreases integer value by one

Example − \$a– will give 9

6

->

The arrow operator is mostly used in dereferencing a method or variable from an object or a class name

Example − \$obj->\$a is an example to access variable \$a from object \$obj.

## Perl运算符优先级

``````left    terms and list operators (leftward)
left    ->
nonassoc    ++ --
right    **
right    ! ~ \ and unary + and -
left    =~ !~
left    * / % x
left    + - .
left    << >>
nonassoc    named unary operators
nonassoc    < > <= >= lt gt le ge
nonassoc    == != <=> eq ne cmp ~~
left    &
left    | ^
left    &&
left    || //
nonassoc    ..  ...
right    ?:
right    = += -= *= etc.
left    , =>
nonassoc    list operators (rightward)
right    not
left    and
left    or xor
``````