Operators and Precedence
Perl operators have the following associativity and precedence, listed from highest precedence to lowest. Table cells indicate groups of operators of equal precedence.
Assoc. | Operators | Description |
|---|---|---|
right | terms and list operators | See next page. |
left |
| Infix dereference operator. |
none |
| Auto-increment (magical on strings). |
| Auto-decrement. | |
right |
| Exponentiation. |
right |
| Reference to an object (unary). |
right |
| Unary logical NOT, bitwise NOT. |
right |
| Unary plus, minus. |
left |
| Binds a scalar expression to a pattern match. |
left |
| Same, but negates the result. |
left |
| Multiplication, division, modulo, repetition. |
left |
| Addition, subtraction, concatenation. |
left |
| Bitwise shift right, bitwise shift left. |
right | named unary operators | E.g., sin, chdir, |
none |
lt gt le ge | Numerical relational operators. String relational operators. |
none |
eq ne cmp
| Numerical equal, not equal, compare. Stringwise equal, not equal, compare. Smartmatch. |
left |
| Bitwise AND. |
left |
| Bitwise OR, bitwise XOR. |
left |
| Logical AND. |
left |
| Logical OR, defined OR. |
none |
| Range operator. |
| Alternative range operator. | |
right |
| Ternary if |
right |
| Assignment operators. |
left |
| Comma operator, also list element separator. |
left |
| Same, enforces the left operand to be a string. |
right | list operators (rightward) | See below. |
right | not | Low precedence logical NOT. |
left | and | Low precedence logical AND. |
left | or | Low precedence logical OR. |
left | xor | Low precedence logical XOR. |
Parentheses can be used to group ...