Operators


Beginning | Previous | Next

Arithmetic Operators

Symbol Meaning Example
+
Addition
$a = $b + $c;
*
Multiplication
$temp = $in * 9.81;
/
Division
print "Age = ", $b / 2;
%
Modulo
$rem = $a % $b;
**
Exponentiation
$cubic = $x**3;
--
Pre/post Decrement
$num_left--;
++
Pre/post Increment
$count++;
|, &, ^
Bitwise OR, AND, XOR
$nibble = $value & 0xff;

String Operators

Symbol Meaning Example
.
Concatenation
$path = $dir . $name;
x
Multiplication
print "Header", '-' x 60

Logical Operators

Symbol Meaning Example
==, !=, <, >, <=, >=
Numeric Comparators
$count++ if ($val > 0);
eq, ne
String Comparators
print "Try again >" if ($ans ne 'y');
=~, !~
Pattern Match
print "Try again >" if ($ans !~ /y/i);
||, &&, or, and
Logic
print "yes" if ($a > 0 && $a < $max);
?:
Conditional
$max = ($a > $b) ? $a : $b;

Assignment Operators

The following assignment operators are recognized: **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=

File Test Operators

Symbol Meaning
-r
File is readable by effective uid/gid.
-w
File is writable by effective uid/gid.
-x
File is executable by effective uid/gid.
-o
File is owned by effective uid.
-R
File is readable by real uid/gid.
-W
File is writable by real uid/gid.
-X
File is executable by real uid/gid.
-O
File is owned by real uid.
-e
File exists.
-z
File has zero size.
-s
File has non-zero size (returns size).
-f
File is a plain file.
-d
File is a directory.
-l
File is a symbolic link.
-p
File is a named pipe (FIFO).
-S
File is a socket.
-b
File is a block special file.
-c
File is a character special file.
-t
Filehandle is opened to a tty.
-u
File has setuid bit set.
-g
File has setgid bit set.
-k
File has sticky bit set.
-T
File is a text file.
-B
File is a binary file (opposite of -T).
-M
Age of file in days when script started.
-A
Same for access time.
-C
Same for inode change time.

Misc

Code Meaning Example
..
Range Operator @alpha = ('a' .. 'z');

Operator Precedence

Borrowed from the Perl online documentation: Perl operators have the following associativity and precedence, listed from highest precedence to lowest. Note that all 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.)

Beginning | Previous | Next
Last Modified: $Date: 1997/09/18 08:48:45 $