{
no strict 'refs';
sub _mk_accessors {
my($self, $maker, @fields) = @_;
my $class = ref $self || $self;
# So we don't have to do lots of lookups inside the loop.
$maker = $self->can($maker) unless ref $maker;
foreach my $field (@fields) {
if( $field eq 'DESTROY' ) {
require Carp;
&Carp::carp("Having a data accessor named DESTROY in
+".
"'$class' is unwise.");
}
my $accessor = $self->$maker($field);
my $alias = "_${field}_accessor";
*{$class."\:\:$field"} = $accessor
unless defined &{$class."\:\:$field"};
*{$class."\:\:$alias"} = $accessor
unless defined &{$class."\:\:$alias"};
}
}
}
|