[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