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