These routines perform the same
functions as their counterparts in the system library.
Within an array context, the return values from the
various get routines are as follows:
($name,$passwd,$uid,$gid,
$quota,$comment,$gcos,$dir,$shell) = getpw...
($name,$passwd,$gid,$members) = getgr...
($name,$aliases,$addrtype,$length,@addrs) = gethost...
($name,$aliases,$addrtype,$net) = getnet...
($name,$aliases,$proto) = getproto...
($name,$aliases,$port,$proto) = getserv...
(If the entry doesn't exist you get
a null list.)
Within a scalar context, you get
the name, unless the function was a lookup by name, in
which case you get the other thing, whatever it is. (If
the entry doesn't exist you get the undefined value.) For
example:
$uid = getpwnam
$name = getpwuid
$name = getpwent
$gid = getgrnam
$name = getgrgid
$name = getgrent
etc.
The $members value returned by
getgr... is a space separated list of the login names of
the members of the group.
For the gethost... functions, if
the h_errno variable is supported in C, it will be
returned to you via $? if the
function call fails. The @addrs value returned by a
successful call is a list of the raw addresses returned
by the corresponding system library call. In the Internet
domain, each address is four bytes long and you can
unpack it by saying something like:
($a,$b,$c,$d) = unpack('C4',$addr[0]);