#Class::Accessor sub make_accessor { my($class, $field) = @_; # Build a closure around $field. return sub { my($self) = shift; if(@_) { return $self->set($field, @_); } else { return $self->get($field); } }; }