http://www.perlmonks.org?node_id=985371

neilwatson has asked for the wisdom of the Perl Monks concerning the following question:

Greetings Sisters and Brothers, Using stat, I'm not getting the results I expect. Could you please explain why.
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, $atime,$mtime,$ctime,$blksize,$blocks) = stat($file); ... Later $mode = $mode & 07777; print "mode=".$mode."\n";
In this example the target file is /etc/passwd. Here are my results.
$ ls -l /etc/passwd -rw-r--r--. 1 root root 1289 Jul 22 16:27 /etc/passwd $ ./perms-module.pl /etc/passwd 644 root root mode=420
Why is the mode 420 rather than 644?

Neil Watson
watson-wilson.ca