use 5.012; use warnings; sub task { state $task='@PERLMONKSFAITH'; exit if ++$_[0] > 100; $_->[ord("`"^" "^($task.=substr $task,0,1,''))] } $_->[0](my $n=1) for [ sub { say $_[0]; goto &{&task} }, sub { say "Fizz"; goto &{&task} }, sub { say "Buzz"; goto &{&task} }, sub { say $_[0]; goto &{&task} }, sub { say "FizzBuzz"; goto &{&task} }, sub { say "Fizz"; goto &{&task} }, sub { say $_[0]; goto &{&task} }, sub { say "Fizz"; goto &{&task} }, sub { say "FizzBuzz"; goto &{&task} }, sub { say $_[0]; goto &{&task} }, sub { say $_[0]; goto &{&task} }, sub { say "Fizz"; goto &{&task} }, sub { say "Buzz"; goto &{&task} }, sub { say "Fizz"; goto &{&task} }, sub { say $_[0]; goto &{&task} }, sub { say $_[0]; goto &{&task} }, sub { say $_[0]; goto &{&task} }, sub { say "Buzz"; goto &{&task} }, sub { say $_[0]; goto &{&task} }, sub { say "Buzz"; goto &{&task} }, sub { say $_[0]; goto &{&task} }, ];