• Publicidad

Descargar hash

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

Descargar hash

Notapor enana » 2011-03-28 12:03 @544

Hola, necesitamos ayuda para descargar una hash. Tenemos unas mil keys, cada una con varios values cargadas en un hash, pero no sabemos cómo descargar los values, ya que nos pinta únicamente los values de la última key para todas las keys.

Este es el código que estamos utilizando:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. foreach my $key1(keys %$estructura)
  2.     {
  3.         foreach  $value (values %$estructura)
  4.             {
  5.                 @value=@$value;
  6.             }
  7.         print "$key-> @value";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¡¡¡Gracias!!! :P
enana
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2011-03-10 11:20 @514

Publicidad

Re: Descargar hash

Notapor explorer » 2011-03-28 12:20 @555

Bienvenida a los foros de Perl en español, enana.

Por lo que he creído entender, se trata de una estructura de un hash de hash.

Esta es una forma de hacerlo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $estructura = {
  2.     clave1      => {
  3.                     a => 1,
  4.                     b => 2,
  5.                     c => 3,
  6.     },
  7.     clave2      => {
  8.                     camarzana   => 'solar',
  9.                     delavega    => 'finca',
  10.                     solariego   => 'pisos',
  11.     },
  12. };
  13.  
  14. for my $key1 (keys %{ $estructura }) {
  15.     my @valores = values %{ $estructura->{$key1} };
  16.     print "$key1 -> @valores\n";
  17. }
  18. __END__
  19. clave2 -> finca solar pisos
  20. clave1 -> 3 1 2
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Recordad: Data::Dumper es vuestro amigo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Data::Dumper;
  2. print Dumper $estructura;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Sale:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$VAR1 = {
          'clave2' => {
                        'delavega' => 'finca',
                        'camarzana' => 'solar',
                        'solariego' => 'pisos'
                      },
          'clave1' => {
                        'c' => 3,
                        'a' => 1,
                        'b' => 2
                      }
        };
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
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: Descargar hash

Notapor enana » 2011-03-28 12:35 @566

Muchas gracias por responder tan rápidamente y por la bienvenida.

Tenemos un hash de hash y utilizamos Dumper estructura...

Hemos probado lo que nos propones y nos da el siguiente error:
Type of arg 1 to values must be hash (not hash element) ... , near "})"

Hemos modificado los () y los {} sin resultado...

Tenemos todas las variables inicializadas, etc...

¿Por qué no detecta bien %{$estructura} para los values() pero si en las keys()?
enana
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2011-03-10 11:20 @514

Re: Descargar hash

Notapor explorer » 2011-03-28 14:40 @653

El mensaje de error dice que la estructura no es como estás diciendo que tiene que ser. El error dice que le estás pasando a values() un elemento de un hash, cuando él está esperando un hash entero.

Dices que has usado el Dumper. Si publicas unas pocas líneas del Dumper, podremos ver la estructura real de la $estructura. Si hay datos sensibles, falséalos.
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 26 invitados