Named blocks should be what you want (code is lightly tested). Generally shouldn’t use single letter var names, even for dummy code and $a and $b should really never be used outside sorting where they have special meaning.
use strict; use warnings; my @x = ( ['aaaaa', 'bbbbb', 'ccccc', 'ddddd',], ['eeeee', 'fffff', 'ggggg', 'hhhhh',], ['iiiii', 'jjjjj', 'kkkkk', 'lllll',], ); my $tolerance = 1; STEVE: for my $outer ( 1 .. 5 ) { TONY: for my $some_x ( @x ) { my $fail = 0; BRUCE: for my $just_this ( @{$some_x} ) { my $c = "..."; # ... get string for pattern matching here. $fail++ if $c =~ /\Q$just_this/; next STEVE if $fail > $tolerance; } } }
Update: In anything but straightforward, single-screen-of-code cases, I agree with GrandFather below.
In reply to Re: returning to the outer loop
by Your Mother
in thread returning to the outer loop
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |