in reply to
how to avoid mis-spelling hash keys?
Pre perl 5.8 you can use Tie::Hash::FixedKeys by davorg. It has exactly the functionality you ask for with the drawback of using the tie mechanism which implies a decrease in performance.
A Programming Language, 1962
Programming the 1900 series in COBOL, 1974
Algorithms + Data Structures = Programs, 1976
The C Programming Language, 1978
System V - Interface definition, 1986
Z80 Assembly Language Programming, 1979
TheSOURCE User's Manual, 1979
The C Primer, 1983
Interactive Fortran 77, A Hands on Approach, 1984
Perl.1 man page, 1991
Results (343 votes),