Nicholas Gerakines > Iterator-RoundRobin-0.2 > Iterator::RoundRobin

Download:
Iterator-RoundRobin-0.2.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 0.2   Source  

NAME ^

Iterator::RoundRobin - The great new Iterator::RoundRobin!

SYNOPSIS ^

Why? Because its Great! And New!

  use Iterator::RoundRobin;
  my $rr = Iterator::RoundRobin->new(
    [qw/usera-1 usera-2 usera-3/],
    [qw/userb-1 userb-2 userb-3/]
  );
  while (my $user = $rr->next()) {
    print "User $user.\n";
  }

FUNCTIONS ^

new

The new method returns an instantiated Iterator::RoundRobin object. This method does require at least one or more array refs to be passed in. It will fail (ungracefully) if those requirements are not met.

next

The next method returns the next item in the list. It does very little voodoo to determine where it gets the thing to return. It handles uneven lists and multiple lists fairly well.

isempty

This method is use internally to determine if there is anything left to return.

rebuildarrays

This method is used internally to rebuild the index when a given list is empty. Please don't call this outside of the object.

CAVEATS ^

This module keeps an internal list of items that have been marked 'completed' which may be a memory hog if you let it. To disable this tracking set the internal variable 'track_completed' as false after object creation.

  my $iter = Iterator::RoundRobin->new( ... );
  $iter->{'track_completed'} = 0;

AUTHOR ^

Nick Gerakines, <nick at gerakines.net>

BUGS ^

Please report any bugs or feature requests to the author.

ACKNOWLEDGEMENTS ^

This module was inspired by Data::RoundRobin. Thanks.

COPYRIGHT & LICENSE ^

Copyright 2006 Nick Gerakines, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: