Maybe this is a stupid question, but how is that passing a reference as a reference? Isn't what you've done (which does work) pass a copy of that portion of the hash? Or is it such that when you pass a portion of a hash it automagically passes it as a reference?