Perl -X 函数

语法

-X FILEHANDLE
-X

定义和用法

文件测试,其中 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 文件句柄打开到一个 tty。

-u 文件已设置 setuid 位。
-g 文件设置了 setgid 位。
-k 文件设置了粘性位。

-T 文件是一个 ASCII 文本文件(启发式猜测)。
-B 文件是"二进制"文件(与 -T 相对)。

-M 脚本开始时间减去文件修改时间,以天为单位。
-A 访问时间相同。
-C 与 inode 更改时间相同

示例

用一些文件试试下面的例子。

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";
}

❮ Perl 函数参考