in reply to Implementing a cyclic array

You could construct an iterator.

use strict; use warnings; my @arr1 = qw{ tom harry diana nick sally henry }; my $iterator = do { my $idx = -1; my @actions = ( sub { print qq{$_[ 0 ] plays\n} }, sub { print qq{$_[ 0 ] eats\n} }, sub { print qq{$_[ 0 ] sleeps\n} }, ); sub { $idx ++; $idx = 0 if $idx > $#actions; &{ $actions[ $idx ] }; }; }; $iterator->( $_ ) for @arr1;

The output

tom plays harry eats diana sleeps nick plays sally eats henry sleeps

I hope this is of interest.

Cheers,

JohnGG

Update: Changed array @methods to @actions to avoid confusion since this is nothing to do with OO.