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.
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.002 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.
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é.