- getgrent
- setgrent
- endgrent
这些过程遍历你的 /etc/group 文件(或者是别人的 /etc/group 文件,如果这个文件来自一台服务器什么的地方的话)。在列表环境里,getgrent 的返回值是:
($name, $passwd, $gid, $members)
这里 $members 包含一个空格分隔的列表,该列表就是该组成员的登录名字。要设置一个散列把组名字转换成 GID,你可以用:
while (($name, $passwd, $gid) = getgrent) { $gid{$name} = $gid; }
在标量环境里,getgrent 只返回组名字。标准的 User::grent 模块支持一个此函数通过名字访问的接口。参阅 getgrent(3)。