• Publicidad

Arrays asociativos

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Arrays asociativos

Notapor ReNcOoR » 2009-11-28 20:43 @904

Hola, amigos, tengo un problema con los hash. Resulta que tengo un hash con 101 pares llave/valor de la siguiente forma:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
negro  => http://www.google.com
blanco => http://www.perlenespañol.com
azul   => http://www.locos.com
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo que quiero es que según el color que escoja el usuario vaya a una u otra URL. El problema es que había pensado en una estructura condicional pero entonces me tocaría hacer 101 condiciones. Mi pregunta es cómo podría lograrlo con poco código.

Un saludo.
ReNcOoR
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2009-11-16 18:45 @823

Publicidad

Re: Arrays asociativos

Notapor explorer » 2009-11-28 20:51 @910

Pues la solución la has dado tu mismo: usando el hash

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $color = <>;
chomp $color;

my $URL;

if ($URL_del{$color}) {
    $URL = $URL_del{$color};
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Precisamente, este es uno de los usos de los arreglos asociativos: encontrar información en función de las claves.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Arrays asociativos

Notapor ReNcOoR » 2009-11-28 21:38 @943

Aquó el código

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. ################# Manejamos los errores ###############
  4.  
  5. use strict;
  6. use warnings;
  7. use diagnostics;
  8.  
  9. ################# Módulos ####################
  10.  
  11. use LWP::UserAgent;
  12. use HTTP::Request;
  13.  
  14. ################# Body ###########
  15.  
  16. print q(
  17.  
  18. -rojo
  19. -azul
  20. -amarillo
  21. -cafe
  22. -morado
  23. -verde
  24. -gris
  25.  
  26. );
  27.  
  28. print "Escoge una opción.\n";
  29. my $opcion = <>;
  30.  
  31. my %enlaces = (
  32.  
  33. "rojo"     =>  "http://www.google.com",
  34. "azul"     =>  "http://www.lacosta.com",
  35. "amarillo" =>  "http://casa.com",
  36. "cafe"     =>  "http://www.locos.com",
  37.  
  38. );
  39.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Yo ya tengo el hash: son 101 pares. Lo que quiero es que el usuario ingrese, por ejemplo, 'amarillo', y me guarde el key que viene hacer http://casa.com en una variable. Un saludo.
Última edición por explorer el 2009-11-28 22:22 @973, editado 1 vez en total
Razón: Ortografía, estilo, anglicismos
ReNcOoR
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2009-11-16 18:45 @823

Re: Arrays asociativos

Notapor explorer » 2009-11-28 22:25 @976

Falta hacer un

chomp $opcion;

para quitar el carácter de fin de línea. Ahora ya tenemos el 'amarillo' dentro de $opcion. Solo queda hacer, entonces,

my $URL = $enlaces{$opcion};
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados

cron