Changing Ownership
If the operating system permits it, you may change the ownership
and group membership of a list of files (or filehandles) with
the chown function. The
user and group are both changed at once, 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? Simple. Just
call the getpwnam function to translate the name
into a number, and the corresponding getgrnam[†] 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 that the return value is not undef, which will be returned if the requested
user or group is not valid.
The chown function returns the
number of files affected, and it sets $! on error.
[†] These two are among the ugliest function names known to mankind. But don’t blame Larry for them; he’s just giving them the same names that the folks at Berkeley did.