< Perl Tutorial

Perl operators

← Previous Next →


Perl Operators

Operators are used in Perl to perform various kinds of tasks. Perl has numerous different kinds of operators. The most important ones which are used most frequently are:

  • Arithmetic Operators
  • Equality Operators
  • Assignment Operators
  • Bitwise Operators
  • Logical Operators
  • Quote-like Operators

Arithmetic Operators

We will assume that the scalar variable $a holds 10 and the other variable $b holds 30 anfd then perform the following arithmetic operations.

 Operator Description Example 
 + (Addition)  Adds values on either side of the operator  $a + $b will give 30
 - (Subtraction)   Subtracts right hand operand from left hand operand  $a - $b will give -10
 * (Multiplication)  Multiplies values on either side of the operator  $a * $b will give 200
 / (Division)  Divides left hand operand by right hand operand  $b / $a will give 2
 % (Modulus)  Divides left hand operand by right hand operand and returns remainder  $b % $a will give 0
 ** (Exponent)  Performs exponential (power) calculation on operators  $a**$b will give 10 to the power 20

Equality Operators

These are also called relational operators. We use two different kinds of relational operators for numeric and string values.
Here we check the relation between two variables using the operators and return true or false. Assume $a holds 10 and $b holds 20

 Operator Description  Example 
 == (Equal to)  Checks if the value of two operands are equal or not, if yes then condition becomes true.  ($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.  ($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.  ($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.  ($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.  ($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.  ($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.  ($a <= $b) is true.

Now, we will see the relational operators for string values. Assume that $a holds "abc" and $b holds "xyz".

 Operator Description  Example 
 lt  Returns true if the left argument is stringwise less than the right argument.  ($a lt $b) is true.
 gt  Returns true if the left argument is stringwise greater than the right argument.  ($a gt $b) is false.
 le  Returns true if the left argument is stringwise less than or equal to the right argument.  ($a le $b) is true.
 ge  Returns true if the left argument is stringwise greater than or equal to the right argument.  ($a ge $b) is false.
 eq  Returns true if the left argument is stringwise equal to the right argument.  ($a eq $b) is false.
 ne  Returns true if the left argument is stringwise not equal to the right argument.  ($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.   ($a cmp $b) is -1.

Assignment Operators

The assignment operator, like all Perl operators, yields a result. The result of an assignment operation is the value assigned after performing the designated operation. The following table shows all the assignment operators available in Perl. Assume that $a holds 10 and $b holds 20.

 Operator Description Example 
 =  Simple assignment operator, Assigns values from right side operands to left side operand  $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  $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  $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  $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  $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  $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  $c **= $a is equivalent to $c = $c ** $a

Bitwise Operators

The bitwise operators are similar to the logical operators, except that they work on a smaller scale -- binary representations of data. One important thing that must be kept in mind is that both operands associated with the bitwise operator must be integers. Bitwise operator works on bits and perform bit by bit operation.

Here we will work on two variables $a and $b to demonstrate bitwise operators. Assume that $a = 60 and $b = 60. In binary format, these values will be represented as:
$a = 0011 1100
$b = 0000 1101

 Operator Description Example 
 &  Binary AND Operator copies a bit to the result if it exists in both operands.  ($a & $b) will give 12 which is 0000 1100
 |  Binary OR Operator copies a bit if it exists in eather operand.  ($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.  ($a ^ $b) will give 49 which is 0011 0001
 ~  Binary Ones Complement Operator is unary and has the efect of 'flipping' bits.  (~$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.  $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.  $a >> 2 will give 15 which is 0000 1111

Logical Operators

Logical operators are mainly used to control program flow. Usually, we will find them as part of an if, a while, or some other control statement. The concept of logical operators is simple. They allow a program to make a decision based on multiple conditions. Each operand is considered a condition that can be evaluated to a true or false value. Then the value of the conditions is used to determine the overall value of the grouping.
Assume that the variable $a holds true and another variable $b holds false. The following table enlists all the logical operators.

 Operator Description  Example 
 and  Called Logical AND operator. If both the operands are true then then condition becomes true.  ($a and $b) is false.
 &&  C-style Logical AND operator copies a bit to the result if it exists in both operands.  ($a && $b) is false.
 or  Called Logical OR Operator. If any of the two operands are non zero then then condition becomes true.  ($a or $b) is true.
||   C-style Logical OR operator copies a bit if it exists in eather operand.  ($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.  not($a and $b) is true.

Quote-like Operators

These are some special available to Perl. The quote-like operators supported by Perl are very useful with Regular Expressions.
The following table enlists the operators.

 Operator  Description Example 
 q{}  Encloses a string with-in single quotes  q{abcd} gives 'abcd'
 qq{}  Encloses a string with-in double quotes  qq{abcd} gives "abcd"
 qx{}  Encloses a string with-in invert quotes  qx{abcd} gives `abcd`

 

These were the operators in Perl that are available to us for making an efficient use of the language.

← Previous Next →