package Passwd;
use strict;
use warnings;
use IO::File;
my $passwd_file = "/etc/passwd";
my $passwd = new IO::File $passwd_file
or die "Unable to read from $passwd_file: $!\n";
my %passwd_by_uid; my %passwd_by_login;
while(<$passwd>) {
chomp;
my ($login, $passwd, $uid, $gid,
$name, $home, $shell) = split /:/;
$passwd_by_uid{$uid} =
$passwd_by_login{$login} = {
login => $login, passwd => $passwd,
uid => $uid, gid => $gid,
name => $name, home => $home, shell => $shell
};
}
$passwd->close;
sub getpwent_by_uid { return $passwd_by_uid{$_[0]}; }
sub getpwent_by_login { return $passwd_by_login{$_[0]}; }
1; # module was loaded successfully
|