```{index} single: lock_keys; Hash::Util function ``` ```{index} single: Hash::Util::lock_keys; Perl function ``` # lock_keys Restrict a hash to its current keys, or to an explicit list. ## Synopsis lock_keys(%hash); # pin the current keyset lock_keys(%hash, @keys); # pin to the given keyset With one argument, subsequent attempts to assign to a key not already in `%hash` croak with `Attempt to access disallowed key '...' in a restricted hash`. With more arguments, the extra keys specify the allowed set; existing keys that do not appear in that set make the call croak with `Hash has key '...' which is not in the new key set`. Keys in the allowed set that are not yet present are accepted later (their slots start as hidden placeholders). `delete` and `exists` still work on a locked hash and do not change the legal keyset — a deleted key can be reassigned, but a brand-new key still cannot. Returns a reference to the hash. A locked hash cannot be `bless`ed; bless before locking if you need both.