Voy avanzando aunque sigo sin acabar. Con lo que tengo ahora, para el primer gen imprimo en el archivo express (y en prueba para comprobar) la lista de tejidos sin ';'. Sin embargo para el resto de genes me da error al ejecutar pero no consigo identificarlo. A ver si consigues ver el fallo, porque tengo lo mismo que para el primer gen.
use warnings;
use diagnostics;
my $a = "ADH2.txt"; #Archivo de entrada del primer gen
my $a1 = "ADH2.express"; #Archivo de salida del primer gen
my $a2 = "prueba.txt"; #compruebo que se escriben los datos en un txt
my $b = "CEACAM4.txt"; #Archivo de entrada del segundo gen
my $b1 = "CEACAM4.express"; #Archivo de salida del segundo gen
my $b2 = "prueba2.txt";
my $c = "GLDC.txt"; #Archivo de entrada del tercer gen
my $c1 = "GLDC.express"; #Archivo de salida del tercer gen
my $c2 = "prueba3.txt";
my $d = "TGM1.txt"; #Archivo de entrada del cuarto gen
my $d1 = "TGM1.express"; #Archivo de salida del cuarto gen
my $d2 = "prueba4.txt";
print "Introduzca el nombre del gen:";
my $gen = <STDIN>;
chomp ($gen);
if ($gen eq "adh2") {
open (ADH2, $a) || die "No se pudo abrir el archivo \"$infile\": $!"; #Este proceso lo repito
open (FINADH2, ">$a1") || die "No se pudo abrir el archivo \"$infile\": $!"; #con los otros 3 genes
open (PRUEBA, ">$a2") || die "No se pudo abrir el archivo \"$infile\": $!";
while ($a = <ADH2>) {
if ($a =~ EXPRESS) {
my $tejidos = substr ($a, 12);
my @tejidos2 = split (/;/, $tejidos);
print FINADH2 "@tejidos2";
print PRUEBA "@tejidos2";
}}
close (ADH2);
close (FINADH2);
}
elsif ($gen eq "ceacam4") {
open (CEACAM4, $b) || die "No se pudo abrir el archivo \"$infile\": $!";
open (FINCEACAM4, ">$b1") || die "No se pudo abrir el archivo \"$infile\": $!";
open (PRUEBA2, ">$b2") || die "No se pudo abrir el archivo \"$infile\": $!";
while ($b = <CEACAM4>) {
my $tejidos = substr ($b, 12);
my @tejidos2 = split (/;/, $tejidos);
print FINCEACAM4 "@tejidos2";
print PRUEBA2 "@tejidos2";
}
close (CEACAM4);
close (FINCEACAM4);
}
elsif ($gen eq "gldc") {
open (GLDC, $c) || die "No se pudo abrir el archivo \"$infile\": $!";
open (FINGLDC, ">$c1") || die "No se pudo abrir el archivo \"$infile\": $!";
open (PRUEBA3, ">$c2") || die "No se pudo abrir el archivo \"$infile\": $!";
while ($c = <GLDC>) {
my $tejidos = substr ($c, 12);
my @tejidos2 = split (/;/, $tejidos);
print FINGLDC "@tejidos2";
print PRUEBA3 "@tejidos2";
}
close (GLDC);
close (FINGLDC);
}
elsif ($gen eq "tgm1") {
open (TGM1, $d) || die "No se pudo abrir el archivo \"$infile\": $!";
open (FINTGM1, ">$d1") || die "No se pudo abrir el archivo \"$infile\": $!";
open (PRUEBA4, ">$d2") || die "No se pudo abrir el archivo \"$infile\": $!";
while ($d = <TGM1>) {
my $tejidos = substr ($d, 12);
my @tejidos2 = split (/;/, $tejidos);
print FINTGM1 "@tejidos2";
print PRUEBA4 "@tejidos2";
}
close (TGM1);
close (FINTGM1);
}
else { #si no introduzco el nombre de ninguno de los 3 genes haz...
print "Gen incorrecto\n";
}