in reply to Re^3: Using Constants in Perl
in thread Using Constants in Perl

I was pretty sure you could declare a hash with use constant.. or well, a hash reference anyways:
use constant HASH_REF => { constant_key => 'constant_value', ... };
Then use it like you would any hashref ie:
print HASH_REF->{constant_key}
or
foreach my $key (keys %{ &HASH_REF }) { ... }
or the even weirder:
foreach my $key (keys %{ HASH_REF() }) { ... }

Replies are listed 'Best First'.
Re^5: Using Constants in Perl
by jhourcle (Prior) on Mar 01, 2006 at 14:22 UTC

    You can declare it, yes, but it's not read only. The reference itself remains constant, but the data that it's referring to can be changed:

    use constant HASH_REF => { key => 'value' }; HASH_REF->{new_key} = 'new value'; HASH_REF->{key} = 'modified'; use Data::Dumper; print Dumper HASH_REF;