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; } } }