Arithmetic operators: + (plus),(minus), * (multiply),/(except), * * (Power),% (take more),(Monocular negative)
(1) The cardinality of the power can not be negative, such as ( 5) * * 2.5 # error;
(2) The result of power can not exceed the limit of computer expression, such as 999999 # error
(3) The operand of the remainder, if not an integer, rounded to an integer; the righthand side of the operator cannot be zero
(4) Monocular negative can be used for variables:$y; # equivalent to $y *1
Second, the integer comparison operator
Table 3.1. integer comparison operator
operator 
description 



greater than 
== 
equals 

less than or equal to 
is greater than or equal to 


The operator <=> result is:
0Two values equal
1The first value is large
1The second value is large
Three, string comparison operator
Table 3.2. string comparison operator
Operator 
Describe 

LT 
Less than 

GT 
Greater than 

eq 
Equals 

le 
Less than or equal to 

GE 
Greater than or equal to 

NE 
Not equal to 

CMP 
Compare, return 1, 0, or1 

Four, the logical operator
Logic or: $a   $b or $a or $b
Logic with: $a && $b or $a and $b
Logical Non:! $a or not $a
Logical XOR OR: $a xor $b
Five, bitwise operator
Bit and:&
Bit or: 
Bit non: ~
Bitwise XOR OR: ^
Move left: $x << 1
Right Shift: $x >> 2
Note: Do not use & for negative integers, because Perl will convert them to unsigned numbers.
Six, assignment operator
Table 3.3. Assignment operator
Operator 
Describe 
= 
Assignment only 
+= 
Addition and assignment 
= 
Subtraction and assignment 
*= 
Multiplication and assignment 
/= 
Division and Assignment 
%= 
Remainder and assignment 
**= 
Exponentiation and Assignment 
&= 
Bitwise AND Assignment 
= 
Bitwise OR and Assignment 
^= 
Bitwise XOR and Assignment 
Table 3.4. Assignment Operator Example
An expression 
An equivalent expression 
$a = 1; 
None (Basic Assignment) 
$a= 1; 
$a = $a1; 
$a *= 2; 
$a = $a * 2; 
$a/= 2; 
$a = $a/2; 
$a%= 2; 
$a = $a% 2; 
$a **= 2; 
$a = $a * * 2; 
$a &= 2; 
$a = $a & 2; 
$a = 2; 
$a = $a  2; 
$a ^= 2; 
$a = $a ^ 2; 
. = Multiple occurrences can occur in an assignment statement, such as:
$value 1 = $value 2 = "a string";
. = as a child expression
($a = $b) + + 3;
Equivalent to
$a = $b;
$a + 3;
It is not recommended to use this approach.
Vii. selfreducing operator: + + 、(same as in C + +)
. Do not use this operator on both sides of a variable: + + $var# Error
. Do not use it again in the same expression after the variable has been increased/reduced: $var 2 = $var 1 + + + + $var 1; # error
. in Perl, + + can be used for strings, but when the end character is ' z ', ' z ', ' 9 ', such as:
$stringvar = "ABC";
$stringvar + +; # $stringvar contains ' Abd ' now
$stringvar = "ABC";
$stringvar + +; # $stringvar contains ' ABD ' now
$stringvar = "Abz";
$stringvar + +; # $stringvar now contains ' aca '
$stringvar = "Agzzz";
$stringvar + +; # $stringvar now contains ' ahaaa '
$stringvar = "AB4";
$stringvar + +; # $stringvar now contains ' AB5 '
$stringvar = "bc999";
$stringvar + +; # $stringvar now contains ' bd000 '
. Do not use,perl will first convert the string to a number and then subtract from it
$stringvar = "ABC";
$stringvar; # $stringvar =1 now
. If the string contains nonalphanumeric characters, or digits in letters, the value of the + + operation is converted to a numeric zero, so the result is 1, such as:
$stringvar = "Ab*c";
$stringvar + +;
$stringvar = "ab5c";
$stringvar + +;
Eight, string joins and repeat operators
Join:.
Repeat: X
Join and assign a value (similar to + =):. =
Cases:
$newstring = "Potato". "Head";
$newstring = "T" x 5;
$a = "be";
$a. = "Witched"; # $a is now ' bewitched '
Nine, comma operator
The preceding expression is preceded by an operation, such as:
$var 1 = 1, $var 2 = $var 1;
Equivalent to
$var 1 = 1;
$var 2 = $var 1;
The only reason to use this operator is to improve the readability of the program and to combine two expressions that are closely related, such as:
$val = 26;
$result = (+ + $val, $val + 5); # $result = 32
Note that the meaning is different if there are no parentheses here:
$val = 26;
$result = + + $val, $val + 5; # $result = 27
Ten, the condition operator
Similar to C, the condition is 1: The value 2, when the condition is true, the value 1, the false time value 2, such as:
$result = $var = = 0? 14:7;
$result = + ($divisor = = 0 0: $dividend/$divisor);
In PERL 5, you can also use a conditional operator on the left side of an assignment to select a variable that is assigned a value, such as:
$condvar = = 43? $var 1: $var 2 = 14;
$condvar = = 43? $var 1 =: $var 2 = 14;
Xi. Order of Operators
Table 3.6. Operator Order
Operator 
Describe 
++,  
Selfincreasing, selfreducing 
, ~, ! 
Monocular 
** 
Squares 
=~, !~ 
Pattern matching 
*, /, %, x 
Multiply, divide, take over, repeat 
+, , . 
Add, subtract, join 
<<, >> 
Shift 
 e, R, etc. 
File status 
<, <=, >, >=, lt, le, gt, ge 
Unequal comparison 
= =, !=, <=>, eq, ne, cmp 
Equality comparisons 
& 
Bit and 
, ^ 
Bit or, bit XOR or 
&& 
Logic and 
 
Logical OR 
.. 
List range 
? and : 
Conditional operator 
=, +=, =, *=, 
assigning values 
And so on 

, 
Comma operator 
not 
Lowprecedence Logical Not 
and 
Lowprecedence Logical AND 
or, xor 
Lowprecedence logical OR and XOR 
. Operator Associativity (associativity):
Table 3.7. Operator associativity
Operator 
Combination of 
++,  
No 
, ~, ! 
Righttoleft 
** 
Righttoleft 
=~, !~ 
Lefttoright 
*, /, %, x 
Lefttoright 
+, , . 
Lefttoright 
<<, >> 
Lefttoright 
 e, R, 
No 
<, <=, >, >=, lt, le, gt, ge 
Lefttoright 
= =, !=, <=>, eq, ne, cmp 
Lefttoright 
& 
Lefttoright 
, ^ 
Lefttoright 
&& 
Lefttoright 
 
Lefttoright 
.. 
Lefttoright 
? and : 
Righttoleft 
=, +=, =, *=, 
Righttoleft 
And so on 

, 
Lefttoright 
not 
Lefttoright 
and 
Lefttoright 
or, xor 
Lefttoright 
Recommendation:
1, when you are unsure whether an operator executes first, be sure to use parentheses.
2, use multirow, spaces, and so on to improve the readability of the program.