my $hash = { key => "value" } ; foreach( keys %{ $myHash } } { doSomething( \key $myHash->{$_} ) ; # or maybe without \ } sub doSomething { print "key = " . key $_[0] . "\n" ; print( ( value $_[0] ) . "\n" ) ; print( ( hash $_[0] )->{key $_[0]} . "\n" ) ; } __END__ key = key value value