El siguiente fragmento de un módulo ilustra 
el modo de uso de  Class::Accessor . El módulo provee
un servicio de llamadas a procedimientos remotos desde un cliente 
Perl a un servidor Perl situado en otra máquina. Los resultados
de la llamada son objetos de la clase GRID::Machine::Result.
La línea 3 (use base qw(Class::Accessor))
indica que no sólo se usa el módulo Class::Accessor
sino que se hereda del mismo.
En la línea 5 definimos una lista con los atributos públicos del objeto.
En la línea 6 se construyen getter/setters para esos atributos.
pp2@nereida:~/LGRID_Machine/examples$ sed -ne '353,370p' Machine.pm | cat -n
 1  package GRID::Machine::Result;
 2  use List::Util qw(first);
 3  use base qw(Class::Accessor);
 4
 5  my @legal = qw(type rstdout rstderr results);
 6  GRID::Machine::Result->mk_accessors(@legal);
 7  my %legal = map { $_ => 1 } @legal;
 8
 9  sub new {
10    my $class = shift || die "Error: Provide a class\n";
11    my %args = @_;
12
13    my $a = "";
14    die "Illegal arg  $a\n" if $a = first { !exists $legal{$_} } keys(%args);
15
16    bless \%args, $class;
17  }
El constructor del ejemplo comprueba que todos los nombres de los argumentos son legales en la línea 14.
El siguiente código muestra un ejemplo de llamada:
              $r = GRID::Machine::Result->new(%result);
              print $r->rstdout;
Casiano Rodríguez León
