sub read_passwd { open IN, '/etc/passwd' or die "can't open IN $!\n"; my %users; my @fields = qw(name pword uid gid fullname home shell); while () { chomp; my %rec; my @data = split(/:/); $rec{$fields[0]} = $data[0]; $rec{$fields[1]} = $data[1]; $rec{$fields[2]} = $data[2]; $rec{$fields[3]} = $data[3]; $rec{$fields[4]} = $data[4]; $rec{$fields[5]} = $data[5]; $rec{$fields[6]} = $data[6]; $users{$rec{name}} = \%rec; } return (\%users); }