En Perl, los índices de los array comienzan por 0, así que en la línea 14, $i debería empezar a contar en 0.
Y en el bucle más interno, en las líneas 21 y 22, es donde debes incrementar el contador de apariciones. Por ejemplo:
$veces++;. Naturalmente, antes lo has inicializado a 0, en la línea 16:
$veces=0;. El print de la línea 23, debes llevarlo después de la llave del while, antes de la 25, y cambiarlo por
print "$j = $veces apariciones\n";. Creo que eso es todo.
De todas formas, hay una duda...
En la secuencia de ejemplo que nos has puesto:
Using text Syntax Highlighting
ATGGAGTCTTTTAGAGAGTTTATCCAACAATTCAAAAAAAATAAGGCAGCGGTCGTTGGGGCTTGGATTGTGCT
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
¿cuántas veces aparece la secuencia AAAA?
Según tu programa, usando esa expresión regular, aparece solo dos veces:
Using text Syntax Highlighting
ATGGAGTCTTTTAGAGAGTTTATCCAACAATTCAAAAAAAATAAGGCAGCGGTCGTTGGGGCTTGGATTGTGCT
1--/2--/
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
¿Ese es el resultado correcto? ¿No debería ser 5?
Using text Syntax Highlighting
ATGGAGTCTTTTAGAGAGTTTATCCAACAATTCAAAAAAAATAAGGCAGCGGTCGTTGGGGCTTGGATTGTGCT
1--/||||
2--/|||
3--/||
4--/|
5--/
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4