sub AUTOLOAD { my ($self, $field ) = @_ ; (my $sub = $AUTOLOAD) =~ s/.*::// ; return (exists($self->{'data'}->{$sub}) ? $self->{'data'}->{$sub} : undef) ; } #### my @public_fields = qw(address phone); sub in_array { ... } sub AUTOLOAD { my ($self, $field ) = @_ ; (my $sub = $AUTOLOAD) =~ s/.*::// ; return (in_array(\@public_fields,$sub) && exists($self->{'data'}->{$sub}) ? $self->{'data'}->{$sub} : undef) ; }