The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.