%hash = ( "j" = "jack", "q" = "queen", "k" = "king", "a" = "ace" ); one( \%hash); sub one { my ($hash) = @_; if ( eq "hello\n" ) { two( \%$hash); # should this be two( $hash ); ? } } sub two { my ($hash) = @_; foreach ( keys %$hash ) { print "$_\n"; } }