请问小骆驼书后的一个习题

请问小骆驼书后的一个习题

第11章第1题

[Copy to clipboard] [ - ]
CODE:
foreach my $file(@ARGV){
my $attribs = &attributes($file);
print "'file' $attribs.\n";
}
sub attributes{
my $file = shift @_;
return "does not exist" unless -e $file;
my @attrib;
push @attrib,"readable" if -r _;
push @attrib,"writable" if -w _;
push @attrib,"executable" if -x _;
return "exists" unless @attrib;
'is' . join " and ",@attrib;
}

这段程序,小骆驼书后的习题,我运行的时候把一个文件chmod 0 file了,但是测试出来这个文件事可读可写的,这是为什么呀
昨天试了下,根目录下创建的文件chmod 0 之后ls看的时候是----------
但用上面程序测是可读可写的。切换到一般用户后就是不可读写了。难道root能对所有文件进行读写,chmod对root用户没有作用?那为什么ls显示的时候不显示-rw-------呢?

无论什么所有者、什么权限,root都可读可写。
要不然怎么叫root呢,对一切魔法免疫。
另外平时要养成不用root的好习惯
否则会有许多意想不到的麻烦。


[Copy to clipboard] [ - ]
CODE:
perldoc -f -r



QUOTE:
Also note that, for the superuser on the local filesystems, the
            "-r", "-R", "-w", and "-W" tests always return 1, and "-x" and
            "-X" return 1 if any execute bit is set in the mode. Scripts run
            by the superuser may thus need to do a stat() to determine the
            actual mode of the file, or temporarily set their effective uid
            to something else.



QUOTE:
原帖由 churchmice 于 2009-1-8 10:20 发表

perldoc -f -r

-r 可以这样perldoc啊


QUOTE:
原帖由 ynchnluiti 于 2009-1-9 09:57 发表

-r 可以这样perldoc啊

Perl 的许多 operatoer 都可以这么着,它的优先级和 named unary operator 一致。



QUOTE:
原帖由 MMMIX 于 2009-1-9 11:53 发表

Perl 的许多 operatoer 都可以这么着,它的优先级和 named unary operator 一致。

没这么查过,一直以为只能man或doc字母
得定下心来好好看看文档

QUOTE:
Regarding precedence, the filetest operators, like "-f", "-M", etc. are treated like named unary operators, but they don't follow this functional parenthesis rule.  That means, for example, that "-f($file).".bak"" is equivalent to "-f "$file.bak"".