[Perl] Re: Lectura de Archivo.
Salvador Ortiz Garcia
sog en msg.com.mx
Jue Mayo 18 12:23:28 CDT 2006
Ok,
Vamos por partes, usar foreach en primer lugar es mala idea, pues
estarías evaluando al "<LOGFILE>" en contexto de lista y ahí ya leiste
todo el archivo. Lo mejor es usar un 'while'
En segundo lugar basta con un sólo loop:
...
while(my $line = <LOGFILE>) {
chomp($line); # De cajón
my $seccion;
if($line =~ /^INFORME(.*)/) { # Es principio de sección?
$seccion = $1; # Supongo necesitas guardarlo
next; # La línea que sigue
}
# Tus casos especiales
last if($line =~ /^--/); # Llegué a los totales, terminé
# Aquí llego cuando tengo datos
my(@datos) = split(' ',$line);# Por decir algo
next unless @datos; # Si no hay datos
procesa($seccion, @datos); # Hago algo con ellos
}
Saludos.
On Wed, 2006-05-17 at 17:22 -0500, Fredy Gonzales P. wrote:
> Gracias por contestar , bueno aqui les explico mi problema :
>
> Tengo un archivo de la siguiente estructura
>
> INFORME1
> 3030 10203 1002 30400 4050 2034 4050
> INFORME2
> 4423 3245 1030 4030 3040 4050 4054
> 01
> 5678 5678 1002 30400 4050 2034 4050
> 01
> INFORME3
>
> INFORME4
> 7789 3456 1030 4030 3040 4050 4054
> 01
> -------------------------------------------------------------
> 8900 9999 9999 9999 4599 2345 6789
>
--
Salvador Ortiz Garcia <sog en msg.com.mx>
Matías Software Group
Más información sobre la lista de distribución Perl