http://www.perlmonks.org?node_id=224463


in reply to how to avoid mis-spelling hash keys?

There are a couple of other modules that perform related functionality, that is validating hash keys but also performing additional hash-access checks:
Tie::StrictHash
Provides key checking for references but provides functionality to ensure you don't unintentionally create a new key. Also controls clearing of the Hash.

Feedback: Strongly-typed "Pascal records" module
This was a module I just recently posted. It's purpose was to prevent exactly those types of finger-fault errors, but it goes farther in that it allows Perl to ensure you assign the type of data you intended to any particular Hash key. That catches errors such as assigning: $hash{product_list}=$a_product; When what you really meant was: $hash{product_list}=[$a_product];.

Andy

@_="the journeyman larry disciple keeps learning\n"=~/(.)/gs, print(map$_[$_-77],unpack(q=c*=,q@QSdM[]uRMNV^[ni_\[N]eki^y@))