my( %dbh_of, %dir_of, ...); my %props = ( dbh => \%dbh_of, dir => \%dir_of, ... ); sub get { my($self,$attr) = @_; my $return_val; # if valid attribute, return the object's value if( defined $props {$attr} ) { return $props {$attr} -> { refaddr $self}; } # otherwise, carp a warning else { carp("Invalid attribute '$attr'"); } }