| Basicos::Base::Iterador |
package MyPackage;
use base qw(Basicos::Base::Iterador);
package main;
my $iter = MyPackage->new( source => \@datos,
mapcode => sub { $_ + 1; } );
while ($iter->next()) {
1;
}
Este módulo es una clase base para crear iteradores sobre fuentes de datos. En el nivel más básico se utiliza sobre listas de elementos, aunque está preparado para derivar clases y acceder a otras fuentes de datos.
Este módulo hereda a su vez de the Basicos::Base manpage, por lo que la creación, inicialización y destrucción de objetos está asegurada.
El resto de los métodos corresponden a atributos que pueden especificarse durante la creación del objeto ó de forma independiente:
Proporciona una referencia a una función encargada de acceder a los datos, recuperando el elemento indicado.
Esta función recibe los siguientes parámetros en su llamada:
Permite proporcionar una función externa encargada de transformar el elemento a recuperar de alguna manera. Está pensada para ser utilizada en, por ejemplo, iteradores sobre una base de datos, en los que se desee obtener realmente un registro de una tabla en lugar de una referencia a un ente en memoria.
Recibe una referencia al objeto iterador y el elemento que se quiere recuperar.
Permite proporcionar una función encargada de averigüar la dimensión final de la fuente de datos que estamos iterando. En una lista de memoria es trivial obtener el último elemento, en un hash un poco menos y en una base de datos puede ser bastante complejo.
Este método convierte un elemento leído en otra cosa. ¿ En qué ? Pues dependerá de la clase derivada, pero puede ser desde otro objeto completamente distinto a una referencia a un cualquier otra cosa.
Si no existe el atributo mapcode el método se limita a devolver lo que se recibe, sin más cambios.
No genera por el momento ningún mensaje de error. Se limita a reproducir aquellos que le lleguen desde el código externo a ella.
There are no known bugs in this module.
Please report problems to manteiners. Patches are welcome.
Víctor Moral <victor@taquiones.net>, Angel Ortega <angel@triptico.com>
Copyright (c) 2005 <Venexma Europa, S.L.>. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
| Basicos::Base::Iterador |