Book Home Programming PerlSearch this book

32.46. User::grent

use User::grent;
$gr = getgrgid(0)          or die "No group zero";
if ($gr->name eq "wheel" && @{$gr->members} > 1) {
    print "gid zero name wheel, with other members";
}

$gr = getgr($whoever);  # Accepts both string or number.

use User::grent ':FIELDS';
getgrgid(0)                or die "No group zero";
if ($gr_name eq "wheel" && @gr_members > 1) {
    print "gid zero name wheel, with other members";
}
This module's default exports override the core getgrent, getgruid, and getgrnam functions, replacing them with versions that return a User::grent object (or undef on failure). This object has methods that access the like-named structure fields from the C library's struct group out of grp.h; namely name, passwd, gid, and members (not mem as in C!). The first three return scalars, the last an array reference. You may also import the structure fields into your own namespace as regular variables using the ":FIELDS" import tag, although this still overrides your core functions. The variables (three scalars and an array) are named with a preceding "gr_". The getgr function is a simple frontend switch that forwards any numeric argument to getgrgid and any string argument to getgrnam.



Library Navigation Links

Copyright © 2001 O'Reilly & Associates. All rights reserved.