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'