Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何确定文件是否所有人都可读?_Perl - Fatal编程技术网

Perl 如何确定文件是否所有人都可读?

Perl 如何确定文件是否所有人都可读?,perl,Perl,如何查找UNIX中的每个人是否都能读取文件?使用该函数。使用该函数。来自: 要为他人提取阅读信息,您可以这样做 print "read for everyone" if $mode & 4; # pick bit 2 from mode 发件人: 要为他人提取阅读信息,您可以这样做 print "read for everyone" if $mode & 4; # pick bit 2 from mode (相对)现代的解决方案:use,自5.004以来的一个核心

如何查找UNIX中的每个人是否都能读取文件?

使用该函数。

使用该函数。

来自:

要为他人提取阅读信息,您可以这样做

print "read for everyone" if $mode & 4;    # pick bit 2 from mode
发件人:

要为他人提取阅读信息,您可以这样做

print "read for everyone" if $mode & 4;    # pick bit 2 from mode
(相对)现代的解决方案:use,自5.004以来的一个核心模块,一直在Perl5中。另见

(相对)现代的解决方案:use,自5.004以来的一个核心模块,一直在Perl5中。另见


@Tree:如果你不知道某个命令,请使用
perldoc-f stat
检查它,或者检查@Tree:如果你不知道某个命令,请使用
perldoc-f stat
检查它,或者在“其他人”可以阅读,但“用户”或“组”不能阅读的模糊情况下,检查并不完全正确。另外,最好使用File::Stat和Fcntl来避免使用硬编码的数字。@mscha同意常数更好,但是在我查看文档之前,它们对我没有任何意义。根据不清楚的情况,仍然可以执行
$mode&0444==0444
+1作为你的例子。完全同意常数太神秘了。不过,我不知道有什么更好、更合适的现代Perl解决方案。在“其他人”可以阅读,但“用户”或“组”不能阅读的晦涩情况下,它并不完全正确。另外,最好使用File::Stat和Fcntl来避免使用硬编码的数字。@mscha同意常数更好,但是在我查看文档之前,它们对我没有任何意义。根据不清楚的情况,仍然可以执行
$mode&0444==0444
+1作为你的例子。完全同意常数太神秘了。不过,我不知道有什么更好、更合适的现代Perl解决方案。
use strict;
use warnings;
use File::stat;
use Fcntl qw(:mode);

...

my $mode = stat($filename)->mode;
my $allCanRead = ($mode & S_IRUSR)   # User can read
              && ($mode & S_IRGRP)   # Group can read
              && ($mode & S_IROTH);  # Others can read