while (my ($home, $topics)=each(%topics)){ # should be %ttopics #### sub tHelp {\%ttopics my $startpoint=$target; #### # some where in the part that calls tHelp: tHelp( $param1, \@array ); # or whatever... # in tHelp itself: sub tHelp { my ( $param, $aref ) = @_; ... }