Error lectura de fichero
Publicado: 2019-03-18 15:41 @695
Buenas.
Llevo toda la tarde con un error tonto que no me deja vivir y por más que lo estudio no veo la forma de solucionarlo.
Resulta que leo un fichero que hace de base de datos; hago un foreach() y luego formateo cada línea para trabajar con cada campo. Recojo un dato en concreto y lo guardo en una variable. Todo va perfecto y lo hace perfecto, lo único que en la terminal me muestra errores apuntando a la última línea del fichero.
Como pensaba que era por el retorno de carro, he usado chomp con la línea.
El fallo que me muestra en el terminal es el siguiente:
Es decir, falla en el chomp() de $fecha y el if(), apuntando a la línea 9 que es justo la última línea del fichero.
El caso es que uso este mismo código en otras partes del programa para trabajar con otros campos de la BD y no me da ningún problema o fallo.
A ver si me damos con el porqué.
Llevo toda la tarde con un error tonto que no me deja vivir y por más que lo estudio no veo la forma de solucionarlo.
Resulta que leo un fichero que hace de base de datos; hago un foreach() y luego formateo cada línea para trabajar con cada campo. Recojo un dato en concreto y lo guardo en una variable. Todo va perfecto y lo hace perfecto, lo único que en la terminal me muestra errores apuntando a la última línea del fichero.
Como pensaba que era por el retorno de carro, he usado chomp con la línea.
Using perl Syntax Highlighting
- #!/usr/bin/perl -w
- my @campos;
- my $fecha = "";
- open file, "<$fichero" or die print "No se abre el fichero";
- @todo = <file>;
- foreach $linea (@todo) {
- chop($linea);
- @campos = split /\t/, $linea;
- $fecha = $campos[6];
- chomp($fecha);
- if ( $fecha ne "No_Definido" and $fecha_fin ne "Permanente" and $fecha_fin ne "" ) {
- print " La fecha es: $fecha \n";
- }
- } # Fin foreach
- @campos = undef;
- @imprimir_todo = undef;
- close(file);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
El fallo que me muestra en el terminal es el siguiente:
Using text Syntax Highlighting
Use of uninitialized value $fecha in scalar chomp at gestion.pl line 379, <file> line 9.
Use of uninitialized value $fecha in string ne at gestion.pl line 380, <file> line 9.
Use of uninitialized value $fecha in string ne at gestion.pl line 380, <file> line 9.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Es decir, falla en el chomp() de $fecha y el if(), apuntando a la línea 9 que es justo la última línea del fichero.
El caso es que uso este mismo código en otras partes del programa para trabajar con otros campos de la BD y no me da ningún problema o fallo.
A ver si me damos con el porqué.