Hmmm... Why so much code? You don't need all this functionality. Besides switching to regular hashes (or using Damian's
Tie::SecureHash module), you can get rid of all that prototype junk. It will only confuse beginners and I've never seen anyone actually call
new() on objects rather than classes.