perl:如何区分文件不存在还是我不存在';我没有访问该路径的权限
我需要在unix环境中使用Perl测试文件系统上是否存在文件/目录。我尝试使用文件test-e,但这并不能区分perl:如何区分文件不存在还是我不存在';我没有访问该路径的权限,perl,unix,Perl,Unix,我需要在unix环境中使用Perl测试文件系统上是否存在文件/目录。我尝试使用文件test-e,但这并不能区分 文件/目录不存在 您没有在父文件夹中读取的权限 我可以查一下美元里有什么?变量并搜索“Permission denied”,但这听起来不是正确的做法 有什么建议吗 非常感谢-e只是对stat的调用,与其他系统调用一样,它设置$和%当它返回false时 if (-e $qfn) { print "ok\n"; } elsif ($!{ENOENT}) { print
- 文件/目录不存在
- 您没有在父文件夹中读取的权限
非常感谢
-e
只是对stat
的调用,与其他系统调用一样,它设置$代码>和%代码>当它返回false时
if (-e $qfn) {
print "ok\n";
}
elsif ($!{ENOENT}) {
print "Doesn't exist\n";
}
else {
die $!;
}
比如说,
$ mkdir foo
$ touch foo/file
$ chmod 0 foo
$ perl x.pl foo/file
Permission denied at x.pl line 10.
$ perl x.pl bar/file
Doesn't exist
$ perl x.pl x.pl
ok
如果你没有读取权限,它实际上是不存在的。我知道这些文件存在,有人将它们添加到“要查看”的文件列表中。现在我看不懂了。重要的是,我可以区分“它肯定不再存在”和“它可能仍然存在,我没有权限检查”。EACCES
权限被拒绝谢谢!我不知道%!。我会调查的。