2014-02-26 50 views
6

爲什麼在Perl中爲文件設置perms時需要使用int()函數?爲什麼在Perl chmod中使用int()?

die "blab, blah" 
    if (! chmod(int(0664), $tmp_file)); 

我能理解運用華僑城()如下面的perldoc例如:

$mode = "0644"; chmod(oct($mode), $tmp_file); 

但INT()函數?

編輯

只是爲了完整性,這裏是從的perldoc -f CHMOD推薦...

$mode = 0644; chmod $mode, "foo";  # this is best 

回答

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")開頭的結果,但不太清楚他們在使用字符串時做了什麼。

相關問題