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