use Array::Iterator::Reusable;
# create an iterator with an array
my $i = Array::Iterator::Reusable->new(1 .. 100);
# do something with the iterator
my @accumulation;
push @accumulation => { item => $iterator->next() } while $iterator->hasNext();
# now reset the iterator so we can do it again
$iterator->reset();

Sometimes you don't want to have to throw out your iterator each time you have exhausted it. This class adds the reset method to allow reuse of an iterator. This is a very simple addition to the Array::Iterator class of a single method.