[Dancer-users] Changing config hashref directly (was: Re: Dancer::layout has been deprecated)
Aaron Crane
perl at aaroncrane.co.uk
Mon May 23 11:20:13 CEST 2011
damien krotkine <dkrotkine at gmail.com> wrote:
> That can be a good idea, but we should be extremely cautious with ties :
> they are slow, and a bit magic.
Another possibility would be to use lock_hash() from Hash::Util (core
since Perl 5.8.0); that forbids modification of the hash, but in a way
that doesn't affect lookup speed. The only downside is that you can
still modify arrays and hashes that are stored (by reference) in the
hash:
use Hash::Util qw<lock_hash>;
my %hash = (array => [], hash => {}, string => 'foo');
lock_hash(%hash);
push @{ $hash{array} }, 1; # allowed
$hash{hash}{nested}++; # allowed
$hash{string} = 1; # forbidden (replaces a stored value)
$hash{new_key} = 1; # forbidden (adds a key)
delete $hash{array}; # forbidden (deletes a key)
--
Aaron Crane ** http://aaroncrane.co.uk/
More information about the Dancer-users
mailing list