el problema que os voy a contar es bastante extraño, y la verdad es que no tengo ni idea de lo que lo puede estar provocando.
Resulta que tengo un programa que llama a 3 rutinas distintas, cada una carga un fichero y lo guarda en un vector. De esta forma:
Using perl Syntax Highlighting
open $f, '<:encoding(Latin-9)', "fichero.dat";
while ($linea = <$f>){
push(@vector,$linea);
}
close $f;
while ($linea = <$f>){
push(@vector,$linea);
}
close $f;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
El caso es que solo una de estas tres rutinas me carga el fichero, ya que en las otras dos se quedan bloqueadas. He probado imprimiendo por pantalla según iba cargando el fichero, y siempre se bloquea cuando va a cargar la última línea del fichero.
Cabe añadir que las tres funciones son prácticamente un copy-paste, por lo tanto no hay diferencia alguna en principio. Los tres ficheros que se cargan están creados exactamente igual... En resumen, que sólo funciona con un fichero correctamente.
He estado haciendo más pruebas, y me he dado cuenta de algo curioso:
Si en el programa principal tengo:
Using perl Syntax Highlighting
cargar_fichero_A();
cargar_fichero_B();
cargar_fichero_C();
cargar_fichero_B();
cargar_fichero_C();
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
donde se me bloquea es al final del fichero C. Si cargo solo el fichero "A" funciona bien. Si cargo solo el "B" o el "C", se bloquea. Si cargo el "B" y el "C" (en ese orden), se bloquea en el "C". Si cargo el "B" y/o el "C" y después el "A", pues se bloquea en el "A"...
Un rollo, pero no le encuentro explicación.
¿Alguien tiene idea de lo que me puede estar pasando?
¡Muchas gracias!