Originally Posted by man perlfunc
-X FILEHANDLE
-X EXPR
-X DIRHANDLE
-X A file test, where X is one of the letters listed below. This unary operator takes one argument, either a filename, a filehandle, or a
dirhandle, and tests the associated file to see if something is true about it. If the argument is omitted, tests $_, except for "-t", which
tests STDIN. Unless otherwise documented, it returns 1 for true and '' for false, or the undefined value if the file doesn't exist. Despite
the funny names, precedence is the same as any other named unary operator. The operator may be any of:
-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.
// and so on...