Perl - Operators

Simple answer can be given using the expression 4 + 5 is equal to 9. Here 4 and 5 are called operands and + is called operator. Perl language supports many operator types, but following is a list of important and most frequently used operators −
Arithmetic Operators
Equality Operators
Logical Operators
Assignment Operators
Bitwise Operators
Logical Operators
Quote-like Operators
Miscellaneous Operators
Lets have a look at all the operators one by one.
Assume variable $a holds 10 and variable $b holds 20, then following are the Perl arithmatic operators −
Show Example
+ ( Addition )
Adds values on either side of the operator
Example − $a + $b will give 30
- (Subtraction)
Subtracts right hand operand from left hand operand
Example − $a - $b will give -10
* (Multiplication)
Multiplies values on either side of the operator
Example − $a * $b will give 200
/ (Division)
Divides left hand operand by right hand operand
Example − $b / $a will give 2
% (Modulus)
Divides left hand operand by right hand operand and returns remainder
Example − $b % $a will give 0
** (Exponent)
Performs exponential (power) calculation on operators
Example − $a**$b will give 10 to the power 20
These are also called relational operators. Assume variable $a holds 10 and variable $b holds 20 then, lets check the following numeric equality operators −
Show Example
== (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.
!= (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.
<=>
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.
> (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.
< (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.
>= (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.
<= (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.
Below is a list of equity operators. Assume variable $a holds "abc" and variable $b holds "xyz" then, lets check the following string equality operators −
Show Example
lt
Returns true if the left argument is stringwise less than the right argument.
Example − ($a lt $b) is true.
gt
Returns true if the left argument is stringwise greater than the right argument.
Example − ($a gt $b) is false.
le
Returns true if the left argument is stringwise less than or equal to the right argument.
Example − ($a le $b) is true.
ge
Returns true if the left argument is stringwise greater than or equal to the right argument.
Example − ($a ge $b) is false.
eq
Returns true if the left argument is stringwise equal to the right argument.
Example − ($a eq $b) is false.
ne
Returns true if the left argument is stringwise not equal to the right argument.
Example − ($a ne $b) is true.
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.
Assume variable $a holds 10 and variable $b holds 20, then below are the assignment operators available in Perl and their usage −
Show Example
=
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
+=
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
-=
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
*=
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
/=
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
%=
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
**=
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
Bitwise operator works on bits and perform bit by bit operation. Assume if $a = 60; and $b = 13; Now in binary format they will be as follows −
$a = 0011 1100
$b = 0000 1101
-----------------
$a&$b = 0000 1100
$a|$b = 0011 1101
$a^$b = 0011 0001
~$a  = 1100 0011
There are following Bitwise operators supported by Perl language, assume if $a = 60; and $b = 13
Show Example
&
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
|
Binary OR Operator copies a bit if it exists in eather operand.
Example − ($a | $b) will give 61 which is 0011 1101
^
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
~
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.
<<
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
>>
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
There are following logical operators supported by Perl language. Assume variable $a holds true and variable $b holds false then −
Show Example
and
Called Logical AND operator. If both the operands are true then then condition becomes true.
Example − ($a and $b) is false.
&&
C-style Logical AND operator copies a bit to the result if it exists in both operands.
Example − ($a && $b) is false.
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.
||
C-style Logical OR operator copies a bit if it exists in eather operand.
Example − ($a || $b) is true.
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.
There are following Quote-like operators supported by Perl language. In the following table, a {} represents any pair of delimiters you choose.
Show Example
q{ }
Encloses a string with-in single quotes
Example − q{abcd} gives 'abcd'
qq{ }
Encloses a string with-in double quotes
Example − qq{abcd} gives "abcd"
qx{ }
Encloses a string with-in invert quotes
Example − qx{abcd} gives `abcd`
There are following miscellaneous operators supported by Perl language. Assume variable a holds 10 and variable b holds 20 then −
Show Example
.
Binary operator dot (.) concatenates two strings.
Example − If $a = "abc", $b = "def" then $a.$b will give "abcdef"
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 ---.
..
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)
++
Auto Increment operator increases integer value by one
Example − $a++ will give 11
--
Auto Decrement operator decreases integer value by one
Example − $a-- will give 9
->
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.
The following table lists all operators from highest precedence to lowest.
Show Example
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


    46 Lectures 
     4.5 hours 

 Devi Killada

    11 Lectures 
     1.5 hours 

 Harshit Srivastava

    30 Lectures 
     6 hours 

 TELCOMA Global

    24 Lectures 
     2 hours 

 Mohammad Nauman

    68 Lectures 
     7 hours 

 Stone River ELearning

    58 Lectures 
     6.5 hours 

 Stone River ELearning
 Print
 Add Notes
 Bookmark this page