> I'm having trouble counting the number of specific substrings 
> within a 
> string. I'm working on a bioinformatics coursework at the 
> moment, so my 
> string looks like this:
> 
> $sequence = "caggaacttcccctcggaagaccatgta";
> 
> I want to count the number of occurrences of each pair of 
> letters, for example:
> 
> Number of occurrences of "aa"
> Number of occurrences of "gt"
> Number of occurrences of "cc"
> 
> This is how I'm counting the number of "cc" pairs at the 
> moment ($cc is 
> my counter variable):
> 
> $cc++ while $sequence =~ /cc/gi;
> 
> But this only matches the literal string "cc", so if, as it scans 
> $sequence, it finds "cccc" it's only counting it once instead 
> of three 
> times.
> 
> What pattern do I need to be looking for in the $sequence if 
> I want to 
> count *all* occurences of "cc" -- even if they overlap?

use strict;
my $sequence = "caggaacttcccctcggaagaccatgta";
my $cc;
while ( $sequence =~ /cc/gi ) {
        print "$` $& $'\n";
        ++$cc;
        pos $sequence = pos($sequence) - 1;
}
print $cc;

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to