Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: how to avoid mis-spelling hash keys?

by pg (Canon)
on Jan 05, 2003 at 18:03 UTC ( #224435=note: print w/replies, xml ) Need Help??


in reply to how to avoid mis-spelling hash keys?

Yes, there is a way to avoid this. Starting from Perl 5.8, you can use the lock_keys function provided in Hash:Util package, to lock your attributes, after you initialized them. One example here:
ex10.pm: package ex10; use Hash::Util; sub new { my $self = {}; $self->{ATTR_ABXCDEFG} = 1; $self->{ATTR_ABCXDEFG} = 2; $self->{ATTR_ABCDXEFG} = 3; $self->{ATTR_ABCDEXFG} = 4; $self->{ATTR_ABCDEFXG} = 5; bless($self); Hash::Util::lock_keys(%{$self}); return $self; } sub do_something_1 { my $self = shift; $self->{ATTR_ABCXDEFG} = 10; } sub do_something_2 { my $self = shift; print $self->{ATTR_ABCXDEFG}; } sub do_something_3 { my $self = shift; $self->{ATTR_AXBCDEFG} = 10; } sub do_something_4 { my $self = shift; print $self->{ATTR_AXBCDEFG}; } 1; ex10.pl: use ex10; $e = new ex10; $e->do_something_1; $e->do_something_2; $e->do_something_3; #see what will happen, if you comment out this $e->do_something_4; #try to comment out this

Replies are listed 'Best First'.
Re: Re: how to avoid mis-spelling hash keys?
by Gorilla (Sexton) on Jan 05, 2003 at 18:23 UTC
    That's exactly what I want, pg++.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://224435]
help
Chatterbox?
[marto]: not so great OS :P
Eily never heard of the movie "LanX"
[Eily]: the LanX OS either now that I think of it :P
[hippo]: Congratulations, Discipulus!
[Discipulus]: Satura Lanx was a latin genre of show
[Discipulus]: coming from the meaning of 'mixed dish'
[Discipulus]: thanks hippo! the hat you passed me was brand new and clean, thanks
LanX OS builds on multitasking humor ...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2017-07-28 10:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I came, I saw, I ...
























    Results (426 votes). Check out past polls.