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
.