my (%speed, %reg, %owner, %mileage);
my %hashrefs = ( speed => \%speed,
reg => \%reg,
owner => \%owner,
mileage => \%mileage);
sub set {
my ($self, $attr, $value) = @_;
my $key = refaddr $self;
if ( !exists $hashrefs{$attr} ) {
carp "Invalid attribute name $attr";
}
else {
$hashrefs{$attr}{$key} = $value;
}
}
Thursday, April 27, 2006
Inside-out accessor methods - version 2
This solution uses a hash of hash-references, which means we no longer need the nasty eval. With thanks to the perl monks.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment