• Publicidad

Meter vector en tabla hash

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

Meter vector en tabla hash

Notapor Eowyn » 2012-02-09 06:04 @294

Hola,

tengo una duda que si alguien pudiera aclararme, sería de gran ayuda.

Hay una tabla hash cuyas claves apuntan a vectores. Es decir, vectores dentro de una tabla hash. Quiero extraer esos vectores a una variable vector, pero me da error y no sé cómo hacerlo. De momento, tengo puesto ésto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. @ADIak = values($Moten_Hash_Taula{"ADI_SIN"})
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Pretendo meter en el vector ADIak los valores que hay en el vector correspondiente a la clave "ADI_SIN". De todas maneras, aún tengo mis dudas sobre si la tabla hash está bien formada.

Otra pregunta que tengo es más bien sobre las normas del foro. ¿Podría poner aquí códigos más bien extensos para preguntar posibles fallos? A menudo me da error pero no sé si es sólo por la línea en la que está el error o viene ya de líneas anteriores, digamos, "arrastrado".

Gracias por su ayuda, me es indispensable y disculpen las molestias, la programación y yo no somos muy amigos :(
Eowyn
Perlero nuevo
Perlero nuevo
 
Mensajes: 45
Registrado: 2011-06-04 08:51 @410

Publicidad

Re: Meter vector en tabla hash

Notapor explorer » 2012-02-09 10:39 @486

El código está bien, aunque entiendo que pone que $Moten_Hash_Taula{"ADI_SIN"} contiene una referencia a un hash, del que quieres obtener los valores (values). ¿Es así como está montada la estructura?

Según parece, no. Hablas de que cada valor de ese hash es un array (le llamas vector. En ese caso, te vale con escribirlo así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. @ADIak = @{ $Moten_Hash_Taula{"ADI_SIN"} };
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Explicación: el valor que nos devuelve $Moten_Hash_Taula{"ADI_SIN"} es una referencia a un array, luego entonces lo des-referenciamos con @{} para extraer los valores de ese array, y pasarlos a @ADIak.

Para estos casos, recuerda que puedes contar con tu amigo Data::Dumper (y familia):

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Data::Dumper;
print Dumper(\%Moten_Hash_Taula);
Coloreado en 0.001 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: 14486
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 0 invitados

cron