sub printElement(\%$) { my %hash1 = %{($_[0])}; my $key = $_[1]; print $key." ".$hash1{$key}."\n"; ... &printElement(\%hash, $key); #### sub printElement { my ( $key, %hash1 ) = @_; print "$key $hash1{$key}\n"; ... printElement( $key, %hash ); #### sub printElement { my ( $hash1, $key ) = @_; print "$key $hash1->{$key}\n"; ... printElement( \%hash, $key );