* Ovid <[EMAIL PROTECTED]> [2005-08-14 05:40]: > Because I frequently find that missing keys are OK; I just need > to assign default values to them if they're not present. Thus, > if I call lock_keys before hand, it doesn't work.
That makes no sense; you seem unaware that you can define *any* set of permissible keys: lock_keys( %args, "foo", "bar" ); None of these keys need already be set. `%args` does not have to have a “foo” or a “bar” key at the time you are locking it. Hence the lock_keys( %args, keys %args, @optional_keys ); idiom in the sample code I wrote in my previous mail, which constrains the hash to the set of the keys already in it (with default values) *plus* a couple of others. > If I call lock_keys afterward, I then I still have to remember > to unlock them when my methods are done with the hash. A minor inconenvience? > I don't want to lock the keys. I want to validate them. Just unlock the keys after using the lock as validation… I really think that, barring objections such as “I MUST support Perls < 5.8” or such, the lock/unlock thing is the simplest way of doing this. Even if I’ve not convinced you, I know this will be what I’ll be doing henceforth. :-) Regards, -- Aristotle Pagaltzis // <http://plasmasturm.org/>