Modifying Permissions
The Unix chmod command changes the
permissions on a file or directory. Similarly, Perl has the chmod function to perform this task:
chmod 0755, "fred", "barney";
As with many of the operating system interface functions, chmod returns the number of items successfully
altered, and when used with a single argument, sets $! in a sensible way for error messages when
it fails. The first parameter is the Unix permission value (even for
non-Unix versions of Perl). For the same reasons we presented earlier
when describing mkdir, this value is
usually specified in octal.
Symbolic permissions (like +x
or go=u-w) accepted by the Unix
chmod command are not valid for the chmod function.[*]
[*] Unless you’ve installed and invoked the File::chmod module from CPAN, which can
apparently upgrade the chmod
operator to understand symbolic mode values.