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
