( categories: working with files )
Use the -X operator, where X can be any of the letters listed below:
| -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 (is empty) |
| -s | File has nonzero size (returns size in bytes) |
| -f | File is a plain file |
| -d | File is a directory |
| -l | File is a symbolic link |
| -p | File is a named pipe (FIFO), or Filehandle is a pipe |
| -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 an ASCII text file (heuristic guess) |
| -B | File is a "binary" file (opposite of -T) |
| -M | Script start time minus file modification time, in days |
| -A | Same for access time |
| -C | Same for inode change time (Unix, may differ for other platforms) |
Example:
print "File test.txt exists" if ( -e "test.txt" );





