in reply to how do I use a hash of hashes reference to a function ?

Alternately, although this is less readable, you can dereference a hash in the subroutine with:
foo(\%hash); sub foo { my %hash = %{shift()}; # rest of function here, which manipulates hash directly }

Call me perverse, but I just love the way that line looks (from what I understant, the () is required when you put shift in the braces to force perl to recognize it as a function call and not a hash key ... but I've been wrong about these things in the past ...