Hola a todos, le escribo para solicitar su ayuda. Mi problema es el siguiente: tengo una lista de datos que deseo filtrar (archivo1.txt). Es decir, eliminar algunos de los elementos (utilizando el archivo2.txt). Los archivos originales contienen muchos más elementos.
El archivo1.txt contiene los siguientes datos:
Using text Syntax Highlighting
P21762
O25570
O25225
P56397
P55984
P69996
P14917
Q9R3B3
P14916
Q09064
Q09065
Q09066
Q09067
Q09068
Q8VN83
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
El archivo2.txt:
Using text Syntax Highlighting
P21762
O25570
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Para ello he escrito el siguiente código:
Using perl Syntax Highlighting
#! /usr/bin/perl
open (FILE1, "archivo1.txt");
open (FILE2, "archivo2.txt");
my @firstdb = <FILE1>;
my @seconddb = <FILE2>;
chomp @firstdb;
chomp @seconddb;
foreach $j (@seconddb) {
for $i(@firstdb){
if ($j ne $i){
print "$i\n";
}
}
}
close FILE1;
close FILE2;
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
El resultado que obtengo es este:
Using text Syntax Highlighting
O25570
O25225
P56397
P55984
P69996
P14917
Q9R3B3
P14916
Q09064
Q09065
Q09066
Q09067
Q09068
Q8VN83
P21762
O25225
P56397
P55984
P69996
P14917
Q9R3B3
P14916
Q09064
Q09065
Q09066
Q09067
Q09068
Q8VN83
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
En lugar de filtrar la lista de archivo1.txt, éste se imprime varias veces.
El resultado esperado sería:
Using text Syntax Highlighting
O25225
P56397
P55984
P69996
P14917
Q9R3B3
P14916
Q09064
Q09065
Q09066
Q09067
Q09068
Q8VN83
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Como pueden ver, en el resultado esperado se han eliminado los dos primeros elementos de archivo1.txt.
Supongo que algo debo estar definiendo mal en los bucles. ¿Podría alguien ayudarme?
Saludos.