Resumen: variables..
Daniel Sol Llaven
daniel@simba.dgsca.unam.mx
Wed, 1 Oct 1997 14:16:50 -0600 (CST)
Saludos!!!
Que bueno que te hemos sido de alguna ayuda, y espero que pronto el poner
una pregunta en el foro sea algo temible por la cantidad de respuestas
que genere :)
On Tue, 30 Sep 1997, Ing. Efren Fitz Rodriguez wrote:
> para construir este hash habria otra manera . por ejemplo intente...
> $vars{bTmx} .= $dato[1] if (Tmx);
> esto es correcto? o de plano estoy metiendo la pata con esta sintaxis
En perl 4 si, en perl 5 no.
En perl 5 necesitarias algo como:
if(Tmx){$vars{bTmx}.=$dato[1]};
...
> los datos esto se despliegan de manera aleatoria, si le doy un sort los
En efecto, las lleves del hash no tienen ningun orden aparente.
> La idea es desplegarlos en el orden que tiene en la "forma" y como los
Para resolver el problema del orden te recomiendo sacarle la vuelta a la
extraccion de llaves del hash, genera junto con el hash un arreglo con
las lleves y usa este para determinar el orden y voila! todo arreglado.
Siguiendo con la propuesta anterior seria algo como:
if(Tmx){$vars{Tmx}.=$dato[1];push @keyvars,"Tmx"};
...
Ahora, hay un patron en este codigo y yo pensaria en reducirlo, veamos,
para cada operacion de creacion de elemento de hash e insercion en el
arreglo hacemos las mismas operaciones, con la diferencia de que cada
llave tiene una posicion diferente en los valores del arreglo @dato, mmm,
interesante.
entonces, si hacemos un has con la correspondencia de elemento y orden en
los datos del arreglo @dato:
%hnuevo=("Tmx",1,"XXX",2,"YYY",3,etc);
Y si ademas, en vez de crear las variables (o lo que sea) Tmx ponemos
todos los campos que deeemos en un arreglo (digamos $campos). Podriamos
simplificar los if del principio por un:
foreach $campo (@campos)
{
$vars{$campo}=$dato[$nuevo{$campo}];
push @kayvars,$campo
}
Y segun yo, puede funcionar :)
El chiste estaria en generar el arreglo @campos.
Bolo Lacertus: lacertus@servidor.dgsca.unam.mx ==~\___\
http://132.248.71.81/cgi-bin/lacertus/hola =__vvvv
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/GE/GED d>d? s:+ a-- C++>+++$ US+++$ P++++$ L E? W++>+++ N++ o? K-
w--- O !M V-- PS+ PE-- Y+ PGP++ t+ 5? X- R@ tv-- b++@- DI++ D+ G++ e+>++
h* r++(*) z+
------END GEEK CODE BLOCK------