[perl] Pregunta sobre Ciclo.

Bolo Lacertus lacertus@servidor.unam.mx
Thu, 07 Sep 2000 12:35:38 -0500


Saludos!!!

Otra forma de hacerlo :)

Una de las ventajas de los Hash (arreglos asociativos) es que ellos
solos buscan a sus llaves, da la casualidad que el identificador del
usuario es la llave del hash, por lo que el puede hacer todo el trabajo,
para saber si existe o no hay un operador llamado exists.

Por cierto, tu programa parece de Perl 4, creo que lo mejor sería que
cambies a la versión 5 para no quedarte detrás antes de empezar.

Agustin de Jesus Astorga de Riquer wrote:
> La seccion de mi programa es:
> 
> #####################################
> foreach $i (@usuario){
> if ($identificador eq $i){
> &cabeza;
> 
> &validasi;
> 
> &cambianombre;
> 
> &reporte;
> &pie;
> }
> else {
> &cabeza;
> &validano;
> &pie;
> }
> }
> ######################################

Todo esto lo cambiamos por:
if (exists $nombreusuario{$identificador})
{
  &cabeza;
  &validasi;
  &cambianombre;
 
  &reporte;
  &pie;
}
else 
{
  &cabeza;
  &validano;
  &pie;
}


> sub cambianombre {
>         if ($identificador eq $i){
>         print qq(Bienvenido $nombreusuario{$i}!);
>         }
> }

Y esto habría que cambiarlo por:
sub cambianombre {
	print "Bienvenido ".$nombreusuario{$identificador}."!";
}
#(de hecho la subrutina no se justifica, pero bueno.


Si la rutina "exists" te da problemas por la versión de Perl que estas
usando, puedes recurrir a un ardid común:
if($nombreusuario{$identificador} ne "")

(Es decir, si el supuesto contenido del índice que estas buscando no es
la cadena vacía, es un método menos eficiente que el exists, pero
funciona bien).

Porque en perl siempre hay mas de una forma de hacerlo...
-- 
Bolo Lacertus: lacertus@servidor.dgsca.unam.mx		==~\___\
http://proteo.dgsca.unam.mx/cgi-bin/lacertus/hola	 =__vvvv
--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : unsubscribe perl