統計を使用して perl で特定のファイルのアクセス許可を確認しようとしています。
だから私がこれをしたとき
foreach (@original_files) {
my($dev, $ino, $mode, $nlink, $uid, $gid, $rdev,
$size, $atime, $mtime, $ctime, $blksize, $blocks) = stat ($_);
print "$mode \n";
}
これは以下を出力します:
33204 which corresponds to the permission -rw-rw-r--
なぜ33204なのか理解できません。<--これは私の最初の質問です
次に、$mode を、umask の数値システムであることがわかっている 8 進数に変換してみました。
これは私のコードです:
printf ("%0\n",$mode);
今、これは 100664 を出力しますが、これは最後の 3 桁 (rw-rw-r--) をかなり下回っていますが、最初の 3 桁がどこから来たのかわかりません (100664 の 100) それが私の 2 番目の質問です
最後に、このコードをもう一度試しました:
printf ("%o\n", $mode & 775); #im not sure about the 775, or is it 577
その最後のコードは私が望んでいたものです。それは 664 を出力します。私の質問は、なぜ i と $mode to i が値 (775 か何か) を忘れたときに、正しい許可を出力するのかということです。
OT の質問も: $_ と @_ の違いは何ですか?