< BACKCONTINUE >

B.10 Basic Operators

For more information on how operators work, consult the perlop documentation bundled with Perl.

B.10.1 Arithmetic Operators

Perl has the basic five arithmetic operators:

+

Addition

-

Subtraction

*

Multiplication

/

Division

**

Exponentiation

These operators work on both integers and floating-point values (and if you're not careful, strings as well).

Perl also has a modulus operator, which computes the remainder of two integers:

% modulus

For example, 17 % 3 is 2, because 2 is left over when you divide 3 into 17.

Perl also has autoincrement and autodecrement operators:

++ add one
-- subtract one

Unlike the previous six operators, these change a variable's value. $x++ adds one to $x, changing 4 to 5 (or a to b).

B.10.2 Bitwise Operators

All scalars, whether numbers or strings, are represented as sequences of individual bits "under the hood." Every once in a while, you need to manipulate those bits, and Perl provides five operators to help:

&

Bitwise and

|

Bitwise or

^

Bitwise xor

>>

Right shift

<<

Left shift

B.10.3 String Operators

Two strings may be concatenated—joined together end to end—with the dot operator:

'This is a ' . 'joined string'

This results in the value 'This is a joined string'.

A string may be repeated with the x operator:

print "Hear ye! " x 3;

This prints out:

Hear ye! Hear ye! Hear ye!

B.10.4 File Test Operators

File test operators are unary operators that test files for certain characteristics, such as -e $file, which returns true if the file $file exists. Table B-2 lists some available file test operators.

Table B-2. File test operators

Operator

Meaning

-r

File is readable

-w

File is writable

-x

File is executable

-o

File is owned by "you"

-e

File exists

-z

File has zero size in bytes

-s

File has nonzero size (returns size in bytes)

-f

File is a plain file

-d

File is a directory (a.k.a. folder)

-l

File is a symbolic link

-t

Filehandle is opened to a terminal

-T

File is a text file

-B

File is a binary file

-M

Age of file (at startup of program) in days since modification

-A

Age of file (at startup of program) in days since last access

-C

Age of file (at startup of program) in days since last inode change

< BACKCONTINUE >

Index terms contained in this section

"exclusive-OR" operator (xor)
& (ampersand)
      (bitwise and) operator
(angle brackets)
     > (right angle bracket)
            >> right shift operator
     < (left angle bracket)
            << left shift operator
+ (plus sign)
      ++ (autoincrement) operator
-- (minus sign), autodecrement operator
^ (caret)
      bitwise xor operator
| (vertical bar)
      (bitwise OR) operator
and operator
      bitwise and (&) operator
arithmetic operators
autoincrement and autodecrement operators
bitwise operators
      & (bitwise and)
concatenating strings
decrementing variables
documentation
     Perl
            perlop (for operators)
file test operators
incrementing variables
left shift operator (<<)
operators
      arithmetic
      bitwise
      file test
      string
or operator
      | (bitwise OR)
perlop documentation
repeating strings (x operator)
right shift (>>) operator
strings
      operators
x operator
xor operator

© 2002, O'Reilly & Associates, Inc.