my @unique = (1, 20, 3, 4, 44, 55, 66, 77, 5, 10, 2, 11, 20, 42, 30, 31, 32, 33, 34, 35, 36, 37, 40); my @in = (4, 3, 2, 2, 42, 40); my %first_index = map { $unique[$_] => $_ } reverse 0 .. @unique-1; my @idxs = map { $first_index{$_} // -1 } @in; @idxs = sort { $a <=> $b } @idxs;; $first = @idxs[0]; $cont = 1; for (1 .. $#idxs) { $diff = @idxs[$_] - $first ; if (($diff > 5) && ($diff < 10)) { @temp = @unique[$first+1..@idxs[$_]-1]; print join(", ", @temp); $diff = $diff-1; print " Hit $cont Length $diff \n"; $cont += 1; } $first = @idxs[$_]; }