use strict; use warnings; my $seq = 'ATCGGCGCCTAT' ; my %count; our( $A1, $A2, $A3, $T1, $T2, $T3, $C1, $C2, $C3, $G1, $G2, $G3 ) = (0) x 12; foreach my $i (0 .. length($seq)-1 ) { my $pos = $i % 3 + 1; my $base = substr $seq, $i, 1; {no strict 'refs'; ${$base.$pos}++;} } print $A1, $A2, $A3, $T1, $T2, $T3, $C1, $C2, $C3, $G1, $G2, $G3;