You can use global matching
/./g to process N chars at-a-time.
#!/usr/bin/perl -wT
use strict;
my $string = 'AGTCGTCGATGCTGATGCTAGCCCC';
print "one at-a-time: $_\n" for $string =~ /./g;
print "two at-a-time: $_\n" for $string =~ /.{1,2}/g;
print "six at-a-time: $_\n" for $string =~ /.{1,6}/g;
__END__
=head1 OUTPUT
one at-a-time: A
one at-a-time: G
one at-a-time: T
one at-a-time: C
one at-a-time: G
one at-a-time: T
one at-a-time: C
one at-a-time: G
one at-a-time: A
one at-a-time: T
one at-a-time: G
one at-a-time: C
one at-a-time: T
one at-a-time: G
one at-a-time: A
one at-a-time: T
one at-a-time: G
one at-a-time: C
one at-a-time: T
one at-a-time: A
one at-a-time: G
one at-a-time: C
one at-a-time: C
one at-a-time: C
one at-a-time: C
two at-a-time: AG
two at-a-time: TC
two at-a-time: GT
two at-a-time: CG
two at-a-time: AT
two at-a-time: GC
two at-a-time: TG
two at-a-time: AT
two at-a-time: GC
two at-a-time: TA
two at-a-time: GC
two at-a-time: CC
two at-a-time: C
six at-a-time: AGTCGT
six at-a-time: CGATGC
six at-a-time: TGATGC
six at-a-time: TAGCCC
six at-a-time: C
-Blake