Perl -X 函数



  • 描述

    -X 文件测试,其中X是下面列出的字母之一。他的一元运算符采用一个参数(文件名或文件句柄),并测试关联的文件以查看其是否正确。如果省略该参数,则测试$_
  • 句法

    以下是此函数的简单语法-
    
    -X FILEHANDLE
    -X
    
    
  • 返回值

    • 如果条件为真则为1
    • 如果条件为假,则为0
    
    -r      有效的uid/gid可以读取文件。
    -w      文件可由有效的uid/gid写入。
    -x      文件可以通过有效的uid/gid执行。
    -o      文件由有效uid拥有。
    -R      真实的uid/gid可以读取文件。
    -W      文件可由真实的uid/gid写入。
    -X      文件可以由真实的uid/gid执行。
    -O      文件由真正的uid拥有。
    -e      文件已存在。
    -z      文件大小为零(为空)。
    -s      文件的大小非零(返回大小以字节为单位)。
    -f      文件是纯文件。
    -d      文件是目录。
    -l      文件是一个符号链接。
    -p      File是命名管道(FIFO),或者Filehandle是管道。
    -S      文件是套接字。
    -b      文件是块特殊文件。
    -c      文件是字符特殊文件。
    -t      Filehandle向tty打开。
    -u      文件已设置setuid位。
    -g      文件已设置setgid位。
    -k      文件设置了粘性位。
    -T      文件是ASCII文本文件(启发式猜测)。
    -B      文件是“二进制”文件(与-T相反)。
    -M      脚本开始时间减去文件修改时间(以天为单位)。
    -A      访问时间相同。
    -C      索引节点更改时间相同
    
    
  • 示例

    尝试下面的示例与一些文件。
     
    stat($filename);
    print "Readable\n" if -r _;
    print "Writable\n" if -w _;
    print "Executable\n" if -x _;
    print "Setuid\n" if -u _;
    print "Setgid\n" if -g _;
    print "Sticky\n" if -k _;
    print "Text\n" if -T _;
    print "Binary\n" if -B _;
    
    # Another way of testing
    if( -e $filename ){
       print " File $filename exists\n";
    }