• Publicidad

Recepción de Parametros SELECT

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Recepción de Parametros SELECT

Notapor seafree » 2020-07-23 11:24 @516

¿Qué tal? Buenos días.

Despliego una interfaz para seleccionar (SELECT) varios campos, con sus diferentes opciones cada uno. Pues bien, cuando recibo los parámetros seleccionados recibo un: HASH(0x20b9460) entre los parámetros recibidos. ¿Alguien me puede decir a qué se debe ésto?

Comentarles que las opciones seleccionas las estoy recibiendo en una HASH con el nombre de campo seleccionado y su valor.

DEFINICIÓN DEL HASH:
my %parametros={};
IMPRESIÓN DE LA DEFICIÓN DEL HASH %parametros
$i=0;
while (my ($k,$v)=each %parametros){
print "$i) KEY: $k VALUE:$v <br>";
$i++;
}

EJEMPLO 1:
PRINT HASH %parametros
PARÁMETROS ANTES DE VACIAR LOS CAMPOS SELECCIONADOS:

0) KEY: HASH(0x20b9460) VALUE:

IMPRESIÓN DE LOS PARÁMETROS ASIGNADOS AL HASH, DESPUÉS DE SU DEFINICIÓN Y ASIGNARLE LOS CAMPOS SELECCIONADOS:
1) KEY: equipo VALUE:DESIO_SE
2) KEY: tipo_mantto VALUE:M
3) KEY: HASH(0x20b9460) VALUE:
4) KEY: subest VALUE:EDO
5) KEY: cve_atendio VALUE:SE
equipo = DESIO_SE tipo_mantto = M HASH(0x20b9460) = subest = EDO cve_atendio = SE

EJEMPLO 2:
PARÁMETROS ANTES DE LLENAR
0) KEY: HASH(0x2203460) VALUE:

PARÁMETROS DESPUÉS DE LLENAR EL HASH
1) KEY: equipo VALUE:DESIO_SE
2) KEY: subest VALUE:EDO
3) KEY: HASH(0x2203460) VALUE:
4) KEY: cve_atendio VALUE:SE
equipo = DESIO_SE subest = EDO HASH(0x2203460) = cve_atendio = SE

Al parecer el valor HASH(0x2203460) lo está generando cuando lo inicializo. ¿Cómo inicializo un HASH en vacío?

Gracias.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Publicidad

Re: Recepción de Parametros SELECT

Notapor explorer » 2020-07-23 13:56 @622

Es muy extraño que un hash tenga como una de las claves un referencia a otro hash. Suena a error.

Para inicializar un hash en vacío, se hace así:

Con nombre:

my %hash;

Sin nombre:

my $hash_ref = {};

Hay más formas, pero estas son las tradicionales.
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: Recepción de Parametros SELECT

Notapor seafree » 2020-07-23 14:38 @651

Gracias, explorer, gusto en saludarte, lo resolví de la siguiente manera:

for (keys %parametros) {
delete $parametros{$_};
}
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Recepción de Parametros SELECT

Notapor explorer » 2020-07-23 15:48 @700

Creí que inicializar se refería a empezar, no ha empezar de nuevo. Lo siento.

Lo que has escrito es la forma laaaaaarga de hacer esto otro:

delete @parametros{keys %parametros};

pero lo recomendado es esto:

undef %parametros;
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: Recepción de Parametros SELECT

Notapor seafree » 2020-08-03 08:57 @414

Perfecto, explorer, gracias.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado