O'Reilly logo

Perl Pocket Reference, 5th Edition by Johan Vromans

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

File Test Operators

These unary operators take one argument, either a filename or a filehandle, and test the associated file to see if something is true about it. If the argument is omitted, they test $_ (except for -t, which tests STDIN). If the special argument _ (underscore) is passed, they use the information from the preceding test or stat call. File test operators can be stacked, e.g., -r -w -x file.

See also the filetest pragma in page 19.

-r -w -x

File is readable/writable/executable by effective uid/gid.

-R -W -X

File is readable/writable/executable by real uid/gid.

-o -O

File is owned by effective/real uid.

-e -z

File exists/has zero size.

-s

File exists and has nonzero size. Returns the size.

-f -d

File is a plain file/a directory.

-l -S -p

File is a symbolic link/a socket/a named pipe (FIFO).

-b -c

File is a block/character special file.

-u -g -k

File has setuid/setgid/sticky bit set.

-t

Filehandle (default STDIN) is opened to a tty.

-T -B

File is a text/nontext (binary) file. These tests return true on an empty file, or a file at EOF when testing a filehandle.

-M -A -C

Returns the modification/access/inode-change time of the file. The value is relative to the time the program started and expressed in fractional days. See also $^T in page 72.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required