open FH, '/etc/passwd' or die "Can't open /etc/passwd, $!"; my @matches = grep { chomp; /thing_to_match/ } ; #### while () { chomp; my ($name, $passwd, $uid, $gid, $quota, $comment, $gcos, $dir, $shell) = split /:/; } #### sub my_getpwnam { my $name_m = shift; open FH, '/etc/passwd' or die "Can't open /etc/passwd, $!"; my @match = grep { chomp; /^$name_m:/ } ; if (!@match) { return (); } # return empty list if not found return split /:/, $match[0]; }