sub get_home_dir { return $ENV{'HOME'} unless @_; my ($userid) = @_; local *PASSWD; open(PASSWD, '<', '/etc/passwd') or die("..."); my ($record) = grep { $_->[0] eq $userid } map { [ split(':') ] } ; return $record && $record->[5]; }