Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
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


Comment on Re: how to avoid mis-spelling hash keys?
Download Code
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?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (4)
As of 2014-10-22 02:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (112 votes), past polls