use Hash::Util 'lock_keys'; my %hash; lock_keys %hash, qw/foo bar baz/; # define hash keys to use say $hash{foo}; # ok, declared say $hash{bah}; # compile-time error, undeclared say $hash{$var}; # ok, not literal