Class::Iterator.3pm

Langue: en

Version: 2004-01-28 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

NAME

Class::Iterator - Iterator class

SYNOPSIS

   use Class::Iterator;
   my $it = Class::Iterator->new(\&closure_generator);
 
 
   while (my $v = $it->next) { print "value : $v\n" }
 
 
   # use map like
   my $it2 = imap { ...some code with $_...} $it
   while (my $v = $it->next) { print "value : $v\n" }
 
 
   # use grep like
   my $it3 = igrep { ...some code with $_...} $it
   while (my $v = $it->next) { print "value : $v\n" }
 
 

DESCRIPTION

Class::Iterator is a generic iterator object class. It use a closure an wrap into an object interface.
new(\&closure_generator)
This is the constructor. The argument is a sub which look like
  sub closure_generator {
    my $private_data;
    return sub {
      # do something with $private_data
      # and return it
      return $private_data
    } }
next
calling this method make one iteration.
$o = imap { ... } $it
This a creator. It create a new iterator from an existant iterator in the manner of map.
$o = igrep { ... } $it
This a creator. It create a new iterator from an existant iterator in the manner of grep.

CREDITS

Marc Jason Dominius's YAPC::EU 2003 classes. Ken Olstad

AUTHOR

Robert Silve <robert@silve.net>