Una alternativa simple es disponer de una función que reciba el nombre de la clase y la lista de los nombres de atributo y cree los correspondientes métodos de acceso:
sub make_accessors { # Install getter-setters
  my $package = caller;
  no strict 'refs';
  for my $sub (@_) {
    *{$package."::$sub"} = sub {
      my $self = shift;
      $self->{$sub} = shift() if @_;
      return $self->{$sub};
    };
  }
}
Casiano Rodríguez León
