[Perl] AYUDA (uninitialized value)

Gunnar Wolf gwolf@campus.iztacala.unam.mx
Wed, 3 Jul 2002 13:22:36 -0500 (CDT)


> Como podria inicializar @pagina??...esta es la forma en que estoy usando =
por primera ves el arreglo de @pagina:
>
> @pagina=3D(@uno, @listadeligas);
> (...)
> > >Use of uninitialized value in print at linkshtm.pl line 61, <KEYWORDS>=
 line 4964.
> > >
> > >donde la linea (o reglon) 61 esta marcada abajo:
> > >
> > >open (ARCHIVO, "+>>links.htm");
> > >foreach $line (@pagina){
> > >        print ARCHIVO $line <----linea 61
> > >                }
> > >close (ARCHIVO);

Ac=E1 no es @pagina a quien tienes que inicializar, sino que a cada uno de
sus elementos - O si no inicializarlo, protegerte contra errores. Por
ejemplo, podr=EDas:

foreach $line (@pagina){
    next unless defined $line;
    print ARCHIVO $line
}

NOTA - A m=ED me gusta jugar con las construcciones de Perl, y para m=ED lo
 m=E1s natural es el 'next unless defined $line'... Tal vez te sea m=E1s
 intuitivo desdoblar esa l=EDnea:

 if (!defined($linea)) {
     next;
 }

 unless es lo mismo que 'if not'. Y acerca del =F3rden, Perl te permite
 poner el condicional despu=E9s de la sentencia... Lo que a mi entender
 muchas veces es m=E1s natural. Recuerda, TIMTOWTDI - There Is More Than
 One Way To Do It ;-)

Saludos,

--=20
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973  F800 D80E F35A 8BB5 27AF