in reply to strict and hashrefs

It won't check at compile time, but maybe some features in Hash::Util might be useful to you?