sub roy { my %count; while ($seq =~ /(?=(((.).).))/g) { ++$count{$1}; ++$count{$2}; ++$count{$3}; } # pick up the last two chars $seq =~ /((.)(.))$/; ++$count{$1}; ++$count{$2}; ++$count{$3}; 1; }