Web | This Site

PERL Tutorial
Advanced PERL
PERL References
Selected Reading
© 2011 TutorialsPoint.COM

| Home |  | References |  | About TP |  | Advertising

# PERL Built-in Operators

There are many Perl operators but here are a few of the most common ones:

# Arithmetic Operators

        +   addition
        -   subtraction
        *   multiplication
        /   division

# Numeric Comparison Operators

        ==  equality
        !=  inequality
        <   less than
        >   greater than
        <=  less than or equal
        >=  greater than or equal

# String Comparison Operators

        eq  equality
        ne  inequality
        lt  less than
        gt  greater than
        le  less than or equal
        ge  greater than or equal

(Why do we have separate numeric and string comparisons? Because we don't have special variable types, and Perl needs to know whether to sort numerically (where 99 is less than 100) or alphabetically (where 100 comes before 99).

# Boolean Logic Operators

        &&  and
        ||  or
        !   not

(`and` , `or` and `not` aren't just in the above table as descriptions of the operators -- they're also supported as operators in their own right. They're more readable than the C-style operators, but have different precedence to `&&` and friend.

# Miscellaneous Operators

        =   assignment
        .   string concatenation
        x   string multiplication
        ..  range operator (creates a list of numbers)

Many operators can be combined with a `=` as follows:

        $a += 1;        # same as $a = $a + 1
        $a -= 1;        # same as $a = $a - 1
        $a .= "\n";     # same as $a = $a . "\n";

# Operator Precedence and Associativity

Perl operators have the following associativity and precedence, listed from highest precedence to lowest. Operators borrowed from C keep the same precedence relationship with each other, even where C's precedence is slightly screwy. (This makes learning Perl easier for C folks.) With very few exceptions, these all operate on scalar values only, not array values.

        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

Advertisement

Online Image Processing

Indian Baby Names