Как узнать, доступен ли файл для чтения всем в UNIX?
(относительно) современное решение: используйте File :: stat , модуль ядра с 5.004, и Fcntl , который всегда был в Perl 5. См. Также perldoc -f stat .
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
С perldoc :
$mode = (stat($filename))[2]; printf "Permissions are %04o\n", $mode & 07777;
Чтобы извлечь бит для чтения другим, вы можете сделать
print "read for everyone" if $mode & 4; # pick bit 2 from mode
Используйте функцию stat.
stat