Mediante Dumper podemos ver el codigo del 
método de acceso. He introducido comentarios
que explican las diferentes partes del método::
  DB<26> p Dumper(\&Foo::a)
$VAR1 = sub {
    package Foo;
    use strict 'refs';
    my $r = shift @_;
    my $i;
    # Si no quedan args retornamos la ref al array
    @_ ? ($i = shift @_) : return($$r{'Foo::a'});
    # Si $i es ARR y no args modificamos array
    if (ref $i eq 'ARRAY' and not @_) {
        $$r{'Foo::a'} = $i;
        return $r;
    }
    croak('Too many args to a') if @_ > 1;
    # $i definido y no es ARR y no args. Modificamos elemento
    @_ ? ($$r{'Foo::a'}[$i] = shift @_) : $$r{'Foo::a'}[$i];
};
Casiano Rodríguez León
