Henry Todd wrote:
[snip]
>
> 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.
>
are you sure it counts it once instead of two:
[panda]# perl -le '$cc++ while('cccc' =~ /cc/g); print $cc'
2
[panda]#
>
> 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?
>
all you need is a little look ahead:
#!/usr/bin/perl -w
use strict;
my $cc = 0;
while('cbccccbc' =~ /c(?=c)/g){
$cc++;
}
print $cc,"\n";
__END__
prints:
3
which is what you want right?
david
--
sub'_{print"@_ ";* \ = * __ ,\ & \}
sub'__{print"@_ ";* \ = * ___ ,\ & \}
sub'___{print"@_ ";* \ = * ____ ,\ & \}
sub'____{print"@_,\n"}&{_+Just}(another)->(Perl)->(Hacker)
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>