Resumen: variables..

Ing. Efren Fitz Rodriguez efitz@zea.chapingo.mx
Tue, 30 Sep 1997 19:52:56 -0600 (CST)


Hola Heladia y Daniel:

Muchas gracias por su respuesta respecto al mensaje (..Variables).
Ante nada mil disculpas por esta contestacion tardia..

Efectivamente el problema se resolvio haciendo uso de arreglos
asociativos (hash).

Lo primero que intente fue hacer uso de la funcion eval() pero sin
resultado alguno.

Comentando un poco al respecto del problema:

se tiene una serie de archivos con datos meteorologicos. (Ejemplo)
01/01/96,24.02,9.79,16.60,1.86,0.95,1.48,31.50,0.00,8.90,158.20,0.00,...
02/01/96,22.52,7.57,14.94,1.80,0.73,1.28,26.89,0.00,6.73,188.40,0.00,...
03/01/96,23.71,5.05,13.83,1.40,0.79,1.09,23.40,0.00,4.38,169.20,0.00,...
04/01/96,25.09,7.00,14.74,1.44,0.58,1.08,20.43,0.00,4.67,135.70,0.00,...
05/01/96,24.97,5.62,14.35,1.47,0.69,1.05,23.40,0.00,4.29,183.50,0.00,...
06/01/96,24.53,5.39,14.77,1.79,0.78,1.23,25.02,0.00,7.11,191.40,0.00,...
:
:
cuyo significado es:
Fecha,Tmx,Tmn,Tmd,PVSmx,PVSmn,PVSmd, VVmx, VVmn, VVmd, DVmd, Prec,...

Se parte del echo que existe una forma  con el objetivo de que el
usuario seleccione que variables desea, asi como de que mes y anio..

Lo primero que intente fue hacer una funcion que me regresara una
cadena (variable escalar) que contendria los variables seleccionadas por
el usuario... que no funciono..

Entonces hice  una funcion que regresara un hash que contiene las vars.
seleccionadas por el usuario

sub var_cliente{
%vars=("aFecha","$dato[0]");
	if (todos los datos){
		%vars = ("aFecha","$dato[0]","bTmx","$dato[1]",.Todasvar)
	}
	else{
	    	%vars = (%vars,"bTmx","$dato[1]") if (Tmx);
		%vars = (%vars,"cTmn","$dato[2]") if (Tmn);
		%vars = (%vars,"dTmd","$dato[3]") if (Tmd);
		:
		:
		Para cada variable.....
	}
return %vars;
}

PREGUNTA ....
para construir este hash habria otra manera . por ejemplo intente...

	$vars{bTmx} .= $dato[1] if (Tmx);
	:
	: para cada variable.....

esto es correcto? o de plano estoy metiendo la pata con esta sintaxis

lo primero que hice esta funcionando bien.... pero al momento de desplegar
los datos esto se despliegan de manera aleatoria, si le doy un sort los
ordena, pero de acuerdo al nombre de la llave.
La idea es desplegarlos en el orden que tiene en la "forma" y como los
seleccione el usuario.
Para resolver esto, a la llave de cada variable le antepuse, como se
habran
dado cuenta, un caracter a, b, c, d..... y al aplicar el sort los ordena 
de acuerdo a como estan en la forma donde interactua el usuario..

Esto me parece un poco truculento, no se si exista alguna manera de
desplegar el contenido de un hash pero en el orden en que fue capturado..

Como se despliegan los datos es con lo sig..

 foreach (keys %Vars) {
 	print "$Vars{$_}";
 }
 
 
bueno amigos espero no haberlos aburrido y mucho menos distraerlos mucho
tiempo de sus ocupaciones..

Sus comentarios al respecto de las 2 dudas anteriores, son bienvenidas.
Ante todo gracias por la atencion al presente..

Saludos:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ing. Efrén Fitz Rodríguez	     			Webmaster 
Centro de Cómputo Universitario	       	     Tel/Fax (595) 505-75
Universidad Autónoma Chapingo	        	Tel. (595) 422-00
E-mail:  efitz@taurus1.chapingo.mx      	   	ext. 5756
	 efitz@scorpionix.chapingo.mx   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~