首先Perl mkdir 的语法是: 1.mkdir('dir', 代表九位二进制数字的十进制值) 设置775,则该值为十进制的509,即二进制的111111101 此数值不能设置为111111111即十进制的511即777。 2.mkdir('dir', 0常见unix3位权限) 可以设置777。
然后在linux下时,由于umask的原因,只能设置为755。 因为创建文件时的权限是umask和mode的&运算的值。 具体原因参见:http://www.perlmonks.org/?node_id=543251
可用下列代码验证:
解决办法如下: 1.可以设置umask时,如下代码: my $old_umask = umask; umask 0; mkdir('test_dir', 0777); umask $old_umask; 2.或者创建完后赋予权限: chmod test_dir, 777
|
请发表评论