Changing Ownership

If the operating system permits it, you may change the ownership and group membership of a list of files with the chown function. The user and group are changed simultaneously, and both have to be the numeric user-ID and group-ID values. For example:

    my $user = 1004;
    my $group = 100;
    chown $user, $group, glob "*.o";

What if you have a username like merlyn instead of the number? Call the getpwnam function to translate the name into a number, and the corresponding getgrnam [295] to translate the group name into its number:

    defined(my $user = getpwnam "merlyn") or die "bad user";
    defined(my $group = getgrnam "users") or die "bad group";
    chown $user, $group, glob "/home/merlyn/*";

The defined function verifies the return value is not undef, which will be returned if the requested user or group is invalid.

The chown function returns the number of files affected, and it sets $! on error.

[295] These two are among the ugliest function names known to mankind. But don’t blame Larry for them; he’s giving them the same names the folks at Berkeley did.

Get Learning Perl, Fourth Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.