Perl-Critic-Policy-ControlStructures-LoopsRequireLabels
view release on metacpan or search on metacpan
t/ControlStructures/LoopsRequireLabels.run view on Meta::CPAN
## name mode nested inner loop labeled break ok
## parms { mode => 'nested' }
## failures 0
## cut
while (1) {
INNER: while (1) {
next INNER;
}
}
## name mode nested top-level but long body flagged by max_lines
## parms { mode => 'nested', max_lines => 3 }
## failures 2
## cut
while (1) {
print "a";
print "b";
next;
}
## name mode nested top-level short body not flagged
## parms { mode => 'nested', max_lines => 3 }
## failures 0
## cut
while (1) {
next;
}
## name mode max_lines short loop no violation
## parms { mode => 'max_lines', max_lines => 5 }
## failures 0
## cut
while (1) {
next;
}
## name mode max_lines long loop
## parms { mode => 'max_lines', max_lines => 2 }
## failures 3
## cut
while (1) {
next;
last;
}
## name mode max_lines exactly at threshold
## parms { mode => 'max_lines', max_lines => 3 }
## failures 0
## cut
while (1) {
next;
}
## name cascade outer labeled inner bare break
## parms { mode => 'always' }
## failures 2
## cut
OUTER: while (1) {
while (1) {
next;
}
}
## name cascade outer labeled triple nested
## parms { mode => 'always' }
## failures 2
## cut
OUTER: while (1) {
while (1) {
while (1) {
next;
}
}
}
## name cascade all loops labeled innermost break bare
## parms { mode => 'nested' }
## failures 1
## cut
OUTER: while (1) {
MIDDLE: while (1) {
INNER: while (1) {
next;
}
}
}
## name outer and inner both labeled everything fine
## parms { mode => 'nested' }
## failures 0
## cut
OUTER: while (1) {
INNER: while (1) {
next INNER;
}
}
## name mode always all unlabeled nested
## parms { mode => 'always' }
## failures 4
## cut
while (1) {
next;
while (1) {
next;
}
}
## name bare block inside loop break in scope
## parms { mode => 'always' }
## failures 2
## cut
while (1) {
{
next;
}
}
## name until outer loop with nested inner
## parms { mode => 'nested' }
## failures 2
## cut
until ($done) {
while (1) {
next;
}
}
## name redo with label reference
## parms { mode => 'always' }
## failures 0
( run in 1.679 second using v1.01-cache-2.11-cpan-9581c071862 )