I think the most important thing to do when working with structures that may contain anonymous hash refereneces is to avoid using tests that access a possibly non existent hash reference key by name, which, as far as I know, is the only way to cause autovivification. I am not sure what, other then
could even be used.
This link provides some extended examples on the subject.