c:\@Work\Perl\monks\pearllearner315>perl -wMstrict -le "my $seq = 'CCCAAAAAAAAAAAAAAAAAAAAAGGTTGGCCGGAAA'; my @k_mers = $seq =~ m{ (?= (.{21} GG)) }xmsg; print qq{'$_'} for @k_mers; " 'AAAAAAAAAAAAAAAAAAAAAGG' 'AAAAAAAAAAAAAAAAAGGTTGG' 'AAAAAAAAAAAAAGGTTGGCCGG' #### c:\@Work\Perl\monks\pearllearner315>perl -wMstrict -le "my $seq = 'GGGGGGGGGGGGGGGGGGGGGGGGGGGCCCAAAAAAAAAAAAAAAAAAAAAGGTTGGCCGGAAA'; ;; my $rx_kmer = qr{ .{21} GG }xms; ;; my @k_mers; my %seen; ;; KMER: while ($seq =~ m{ (?= ($rx_kmer)) }xmsg) { push @k_mers, $1 unless $seen{$1}++; last KMER if @k_mers >= 1000; } ;; print qq{'$_'} for @k_mers; " 'GGGGGGGGGGGGGGGGGGGGGGG' 'AAAAAAAAAAAAAAAAAAAAAGG' 'AAAAAAAAAAAAAAAAAGGTTGG' 'AAAAAAAAAAAAAGGTTGGCCGG' #### c:\@Work\Perl\monks\pearllearner315>perl -wMstrict -le "use List::MoreUtils qw(uniq); ;; my $seq = 'GGGGGGGGGGGGGGGGGGGGGGGGGGGCCCAAAAAAAAAAAAAAAAAAAAAGGTTGGCCGGAAA'; ;; my $rx_kmer = qr{ .{21} GG }xms; ;; my @k_mers = uniq $seq =~ m{ (?= ($rx_kmer)) }xmsg; $#k_mers = 999 if $#k_mers >= 1000; ;; print qq{'$_'} for @k_mers; " 'GGGGGGGGGGGGGGGGGGGGGGG' 'AAAAAAAAAAAAAAAAAAAAAGG' 'AAAAAAAAAAAAAAAAAGGTTGG' 'AAAAAAAAAAAAAGGTTGGCCGG'