---
name: "List::Rotation::Cycle"
section: "3pm"
platform: "linux"
package: "liblist-rotation-cycle-perl"
version: "1.009-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/List::Rotation::Cycle"
---

# List::Rotation::Cycle(3pm)

Cycle through a list of values via a singleton object implemented as closure.

## NAME

List::Rotation::Cycle - Cycle through a list of values via a singleton object implemented as 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
```

## 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.

## 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.

## AUTHOR

Imre Saling, `"<pelagicatcpandotorg>"`

## COPYRIGHT and LICENSE

Copyright 2000-2004, Imre Saling, All rights reserved.

This software is available under the same terms as perl.
