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
.