$ perl -Mstrict -Mwarnings -E ' sub cycle { state $i = -1; $_[0]->[++$i, $i %= @{$_[0]}]; } my $stuff = ["a" .. "d"]; print cycle($stuff) for 1..30; ' abcdabcdabcdabcdabcdabcdabcdab