为什么在Perl chmod中使用int()?

为什么在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”)开头的结果,但是当他们离开使用字符串时却不太明白他们在做什么.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...