Programación Web y Scripting => Perl => Mensaje iniciado por: Alma Janeth en Viernes 7 de Noviembre de 2003, 02:55
Título: Re: problemas con arreglos
Publicado por: Alma Janeth en Viernes 7 de Noviembre de 2003, 02:55
hola
por que en arreglos no me almacena los datos y tampoco los muestra cuando hago referencia a ellos ejemplo: @array[0]=5 no me muestra nada si tengo 5,6,2 etc solo no almacena nada y por lo tanto no muestra nada
Título: Re: problemas con arreglos
Publicado por: azzwad en Domingo 16 de Noviembre de 2003, 06:16
Hola, espero poder responderte correctamente a tu pregunta.
Mira viendo mas o menos lo que querias hacer hice un pequeño codigo para que veas, ya lo corri y si imprime bien los valores, checa:
#!usr/bin/perl
#defines valores al arreglo @arr[0]=11; @arr[1]=12; @arr[2]=13; @arr[3]=14; @arr[4]=15;
Bueno espero le entiendas, no soy bueno para explicar pero espero que con el codigo quede bien
Saludos.
Título: Re: problemas con arreglos
Publicado por: Alma Janeth en Miércoles 19 de Noviembre de 2003, 18:33
gracias ya me almacena los valores y si me sirvio lo que me escribiste :angel:
Título: problemas con arreglos
Publicado por: azzwad en Jueves 20 de Noviembre de 2003, 04:50
No hay por que, lo que necesites por aca andamos suerte!.
Título: Re: problemas con arreglos
Publicado por: explorer en Domingo 9 de Julio de 2006, 01:08
Es un error muy común de los programadores de Perl, confundir el uso de la '@' y del '$' en los arrays.
Una '@' hace referencia a un array, desde luego... pero al array en su conjunto. Si sólo queremos acceder a un sólo elemento, estamos queriendo acceder a un escalar, por lo que estamos obligados a usar el '$'.
En esta línea:
Código: Text
@array[1] = 5;
lo que estamos haciendo es: 1.- dado que existe una '@' delante de 'array', Perl convierte a '5' en un array (de un sólo elemento, claro). 2.- Perl coge todos los elementos de ese nuevo array y los distribuye por los elementos de @array indicados por los índices que están entre corchetes. En este caso, sólo hay un '1', por lo que coge el primer elemento del nuevo array (el '5') y lo mete en la posición segunda ([1]) del @array.
Si en las primeras líneas del programa tuvieramos la costumbre de poner
Código: Text
use warnings;
entonces recibiríamos un aviso así:
Citar
Scalar value @arr[1] better written as $arr[1] at -e line 1.
Vamos a modificar el ejemplo propuesto por azzwad para intentar verlo mejor:
El uso del '@' debe quedar restringido sólo en el caso de que queramos hacer referencia a más de un elemento. Ejemplo: si queremos pintar los elementos que van desde la posición 1 a la 3 entonces haríamos:
Código: Text
print "@arr[1..3]\n"; # 12 13 14
El uso de '@arr[0]=11;' sólo está permitido a partir del Perl6.