&callsub(%hashtopass); sub callsub { %hashread = @_; foreach $k (keys %hashread) { print "$k => $hashread{$k}\n"; } } #### &callsub(\%hashtopass, $otherStuff); sub callsub { my ($hashref, $otherParam) = @_; # or: my $hashref = shift; if you prefer that foreach my $k (keys %{$hashref}) { print "$k => $hashref->{$k}\n"; } }