What does if( -f ) in Perl do?

后端 未结 5 2133
谎友^
谎友^ 2021-02-05 03:10

I came across this line of code:

if( -f  ) { ... }

-f appears to test whether the filename exists or not, but I am

5条回答
  •  深忆病人
    2021-02-05 03:26

    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)
    

提交回复
热议问题