El Formato de un Método de Acceso

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
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19