File Test Operators

A file test operator is a unary operator that tests a filename or a filehandle.

Operator

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 nonzero 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 (at startup) in days since modification

-A

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

-C

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

Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.