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