#! perl -slw use strict; use Data::Dump qw[ pp ]; sub maxMatches { my $s = shift; my %uniq; LOOP: for my $o ( 0 .. length( $s ) - 10 ) { my( $match ) = $s =~ m[.{$o}([ACGT].{0,8}[ACGT])]; m[$match] and next LOOP for keys %uniq; $uniq{ $match }++; } return keys %uniq; } while( ) { chomp; printf "$_ : [ %s ]\n", join ', ', maxMatches( $_ ); } __DATA__ AGRTGAXWXX ACRMGAHKMAHGTXX