---
name: "Array::Iterator::Circular"
section: "3pm"
platform: "linux"
package: "libarray-iterator-perl"
version: "0.135-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Array::Iterator::Circular"
---

# Array::Iterator::Circular(3pm)

## VERSION

Version 0.135

## SYNOPSIS

```
  use Array::Iterator::Circular;
  # create an instance with a
  # small array
  my $color_iterator = Array::Iterator::Circular->new(qw(red green blue orange));
  # this is a large list of
  # arbitrary items
  my @long_list_of_items = ( ... );
  # as we loop through the items ...
  foreach my $item (@long_list_of_items) {
      # we assign color from our color
      # iterator, which will keep dispensing
      # as it loops through its set
      $item->set_color($color_iterator->next());
  }
  # tell us how many times the set
  # was looped through
  print $color_iterator->get_loop_count();
```

## DESCRIPTION

This iterator will loop continuosly as long as `"next"` or `"get_next"` is called. The `"has_next"` method will always return true (`1`), since the list will always loop back. This is useful when you need a list to repeat itself, but don't want to (or care to) know that it is doing so.

## METHODS

This is a subclass of Array::Iterator, only those methods that have been added or altered are documented here, refer to the Array::Iterator documentation for more information.

- **has\_next**

  Since we endlessly loop, this will always return true (`1`).

- **next**

  This will return the next item in the array, and when it reaches the end of the array, it will loop back to the beginning again.

- **get\_next**

  This method is now defined in terms of `"next"`, since neither will even stop dispensing items, there is no need to differentiate.

- **is\_start**

  If at anytime during your looping, you want to know if you have arrived back at the start of you list, you can ask this method.

- **is\_end**

  If at anytime during your looping, you want to know if you have gotten to the end of you list, you can ask this method.

- **get\_loop\_count**

  This method will tell you how many times the iterator has looped back to its start.

## SEE ALSO

This is a subclass of **Array::Iterator**, please refer to it for more documentation.

## ORIGINAL AUTHOR

stevan little, \<stevan@iinteractive.com\>

## ORIGINAL COPYRIGHT AND LICENSE

Copyright 2004 by Infinity Interactive, Inc.

\<http://www.iinteractive.com\>

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