#
# Ejercicio
6. Leer 3 cadenas y contar con una funcion, cuantas bases de cada tipo existen
#
use
strict;
print
"Introduzca tres cadenas de adn \n";
my $adn1=<STDIN>;
chomp $adn1;
my $adn2=<STDIN>;
chomp $adn2;
my $adn3=<STDIN>;
chomp
$adn3;
my @adn1
= split('',$adn1);
my @adn2
= split('',$adn2);
my @adn3
= split('',$adn3);
my %num
= ();
numero_de_bases(\@adn1,
\@adn2, \@adn3, \%num);
print
"El resultado de contar las bases de las tres cadenas \n cadena1=$adn1 \n
cadena2=$adn2 \n cadena3=$adn3 \n es:\n As= $num{'a'}\n Cs=$num{'c'}\n
Gs=$num{'g'},\n Ts=$num{'t'}\n";
exit;
#
#
Subrutina que une las tres cadenas en una sola cadena de caracteres
#
sub
numero_de_bases {
my($array1,$array2,$array3,$resul) = @_;
my $cadena_total='';
my $i;
for ( $i=0; $i< scalar @$array1; $i++)
{
$cadena_total = $cadena_total.$$array1[$i];
}
for ( $i=0; $i< scalar @$array2; $i++)
{
$cadena_total = $cadena_total.$$array2[$i];
}
for ($i=0; $i< scalar @$array3; $i++) {
$cadena_total = $cadena_total.$$array3[$i];
}
print "La cadena unida es:
$cadena_total\n";
my
%cuentas = ();
cuenta(\$cadena_total,\%cuentas);
%$resul=%cuentas;
}
sub
cuenta {
my ($i, $j) = @_;
my $k;
my @adn =split('', $$i);
for ($k= 0; $k<scalar @adn; $k++) {
if ($adn[$k] eq 'a') {
$$j{'a'}++;
}
elsif($adn[$k] eq 'c') {
$$j{'c'}++;
}
elsif($adn[$k] eq 'g') {
$$j{'g'}++;
}
else {
$$j{'t'}++;
}
}
}