Vaaalee... ¡tranquila!
Con diez horas de clase deberías al menos saber inicializar una variable escalar con una cadena de caracteres y recorrer cada uno de los caracteres. Es más, seguro que lo tienes en los apuntes de clase.
Yo lo único que pido es que enseñes algo del código tuyo para ver qué nivel es. Porque puede ser algo tan complejo como esto:
perl -le '$a="ATTCCTGATGCGACCCCT"; $v = () = $a =~ /CCT/g; print "Aparece $v veces"'Empieza así:
Using perl Syntax Highlighting
$a = "ATTCCTGATGCGACCCCT";
for ($i = 0; $i < length($a); $i++) {
$base = substr($a, $i, 1
);
# ...
}Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Y en cuanto a la segunda cuestión, es muy típico de los problemas de Perl, el contar aparición de elementos. De hecho, en este foro de Básico ha salido bastantes veces.
Se podría hacer con algo así:
Using perl Syntax Highlighting
$a = "ATTCCTGATGCGACCCCT";
for ($i = 0; $i < length($a); $i++) { # para todas las posiciones a lo largo de la longitud
$base = substr($a, $i, 1
); # extraemos la base
$hash{$base}++; # suma uno a las apariciones de $base
}
# ... (presentar las veces que aparece cada base)Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
¿Ves?, ya solo quedan 4 líneas más y lo tienes hecho. ¿No es complicado, no?
Bueno, es complicado si para el segundo problema ponemos esto:
perl -le '$a="ATTCCTGATGCGACCCCT"; $hash{$_}++ for split //, $a; for(keys%hash){print "$_:$hash{$_}"}'P.D.: Por favor, no odies a Perl. Ódiame a mí.