Loop-Control
view release on metacpan or search on metacpan
#!/usr/bin/env perl
use warnings;
use strict;
use Loop::Control;
use Test::More tests => 1;
use Test::Differences;
my $output = '';
sub record { $output .= join '' => @_ }
sub doit {
my ($level, $iterations) = @_;
return if $level > 2;
record "level $level: begin\n";
for (1 .. $iterations) {
FIRST { record "level $level, block 1, iter $_: FIRST A\n" };
record "level $level, block 1, iter $_: before\n";
record "level $level, block 1, iter $_: middle\n";
FIRST { record "level $level, block 1, iter $_: FIRST B\n" };
record "level $level, block 1, iter $_: after\n";
}
record "\n";
doit($level + 1, $iterations);
for (1 .. $iterations) {
FIRST { record "level $level, block 2, iter $_: FIRST A\n" };
record "level $level, block 2, iter $_: before\n";
record "level $level, block 2, iter $_: middle\n";
FIRST { record "level $level, block 2, iter $_: FIRST B\n" };
record "level $level, block 2, iter $_: after\n";
}
record "level $level: end\n\n";
}
doit(1, 3);
doit(1, 3);
( run in 1.197 second using v1.01-cache-2.11-cpan-5511b514fd6 )