为什么在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
解决方法
这绝对没有意义. 0664已经产生整数.
$perl -MDevel::Peek -e'Dump(0664)' SV = IV(0x7a6118) at 0x7a6128 REFCNT = 1 FLAGS = (PADTMP,IOK,READONLY,pIOK) IV = 436
IOK表示标量包含整数值.
这肯定是有人以oct(“0644”)开头的结果,但是当他们离开使用字符串时却不太明白他们在做什么.