logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

List::Rotation::Cycle - Cycle through a list of values via a singleton object implemented as closure.

Author

       Imre Saling, "<pelagicatcpandotorg>"

Description

       Use "List::Rotation::Cycle" to loop through a list of values.  Once you get to the end of the list, you
       go back to the beginning.

       "List::Rotation::Cycle" is implemented as a Singleton Pattern. You always just get 1 (the very same)
       Cycle object even if you use the new method several times.  This is done by using "Memoize" on the "new"
       method. It returns the same object for every use of "new" that comes with the same List of parameters.

Name

       List::Rotation::Cycle - Cycle through a list of values via a singleton object implemented as closure.

Object Methods

       new Create a Cycle object for the list of values in the list.

       next
           Return the next element.  This method is implemented as a closure.

Synopsis

           use List::Rotation::Cycle;

           my @array = qw( A B C );

           my $first_cycle  = List::Rotation::Cycle->new(@array);
           my $second_cycle = List::Rotation::Cycle->new(@array);

           print $first_cycle->next;  ## prints A
           print $second_cycle->next; ## prints B
           print $first_cycle->next;  ## prints C
           print $second_cycle->next; ## prints A, looping back to beginning

See Also