use strict; use warnings; use Tie::Cycle; my @names = qw/tom harry diana nick sally henry/; tie my $cycle, 'Tie::Cycle', [ sub{print "$_[0] plays\n"}, sub{print "$_[0] eats\n"}, sub{print "$_[0] sleeps\n"} ]; $cycle && $cycle->($_) for (@names);