I've been pondering the use of lock_keys() in object constructors, to make the objects a bit more strict; giving the same sort of advantages on hash keys for an object as "use strict" does for variables.
I can so far think up two reasons why one might not want to do this:
a) Only works on >= 5.8.0; so 5.6.x fails
b) Makes it harder to subclass.
I can think of a number of workarounds for subclassing, but none of them
seem overly neat offhand. Mostly they'd involve something like:
sub new
{
my $class = shift;
my $self = bless { }, $class;
$self->_init( @_ );
lock_keys( %$self );
return $self;
}
Then actually do all of the object initialisation in a subclass chain of
sub _init { ... } methods.
Anyone have anything better?
--
Paul "LeoNerd" Evans
[EMAIL PROTECTED]
ICQ# 4135350 | Registered Linux# 179460
http://www.leonerd.org.uk/
signature.asc
Description: Digital signature
