my $stuff = [ 'a', 'b', 'c', 'd' ]; sub cycle { push @{$_[0]}, shift @{$_[0]}; return $_[0]->[-1]; } print cycle $stuff for 1..30; # result: # $ perl cycle.pl # abcdabcdabcdabcdabcdabcdabcdab