InfiniteSilence,
A quick search turned up Hash::NoVivify, which only works by exporting functions Exists and Defined as alternatives toexists and defined, but that looks like what you want anyway
Well, that module doesn't really turn off autovivification.
It just defines functions 'Defined' and 'Exists', with quite
different syntax from 'defined' and 'exists'.