为什么在 Perl 中设置文件的权限时需要使用 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")
开头的结果但不太了解当他们不再使用字符串时他们在做什么。
关于perl - 为什么在 Perl chmod 中使用 int()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22046186/