logo
Free, Micro AI Code Reviews That Run on Git Commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, Micro AI Code Reviews That Run on Git Commit | Product Hunt git-lrc - Free, Micro AI Code Reviews That Run on Git 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