in reply to use warnings; and deprecated Pseudo hashes

Pseudo-hashes are depreciated in perl 5.8 but they are still supported so "Pseudo hashes are depreceated" is only a warning. On the other hand, pseudohashes are completely unsupported in perl 5.10, so there you'd indeed get an error with the message "Not a HASH reference". Just try this standalone test:

perl -we 'warn ${[{"a",1},"foo"]}{"a"}'
In perl 5.8 you get a warnings but the right result:
Pseudo-hashes are deprecated at -e line 1. foo at -e line 1.
whereas perl 5.10 dies.