I came across this line of code:
if( -f <filename> ) { ... }
-f
appears to test whether the filename exists or not, but I am not sure. Googling has not helped so far (it is hard to Google for "-f") and neither have my Perl books.
Can anyone please advise?
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. -
The null filehandle <> is special: it can be used to emulate the behavior of sed and awk, and any other Unix filter program that takes a list of filenames, doing the same to each line of input from all of them. Input from <> comes either from standard input, or from each file listed on the command line.
$$ - The process number of the Perl running this script. $0 - Contains the name of the program being executed.
In these cases the value of $@ is the compile error, or the argument to die.
See perlfunc.
It lists all the Perl built-in functions, including the "file test" ones:
-X FILEHANDLE -X EXPR -X DIRHANDLE -X
Where -X
is one of the following:
-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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With