Recall:
A boolean false is any of the following: '', "","0",'0', or 0. So the following would be false
if( 0 or "0" or '0' or '' or "" ) { print "This never happens\n"; }A boolean true is everything else. So the following would be true
if( 1 and "dog" and " " ) { print "This always happens\n";
| 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 non-zero 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 a binary file |
| -M | Age of file in days since last modification |
| -A | Age of file in days since last access |
| -C | Age of file in days since last change |