为什么在Perl文件中设置perms时需要使用int()函数?
die "blab, blah"
if (! chmod(int(0664), $tmp_file));
我可以理解oct()的使用,如下面的perldoc示例所示:
$mode = "0644"; chmod(oct($mode), $tmp_file);
但int()函数?
修改
为了完整起见,这是perldoc -f chmod的推荐......
$mode = 0644; chmod $mode, "foo"; # this is best
答案 0 :(得分:10)
这绝对没有意义。 0664
已经产生一个整数。
$ perl -MDevel::Peek -e'Dump(0664)'
SV = IV(0x7a6118) at 0x7a6128
REFCNT = 1
FLAGS = (PADTMP,IOK,READONLY,pIOK)
IV = 436
IOK
表示标量包含整数值。
这肯定是某人以oct("0644")
开头的结果,但当他们不再使用字符串时却不太了解他们在做什么。