• Publicidad

Sobre referencias y hashes

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

Sobre referencias y hashes

Notapor vicca » 2012-10-04 03:58 @207

¡Hola!

Estoy aprendiendo a programar en Perl y me he topado con un error con el que no contaba: no puedo devolver como valores de una función un par de hashes.

Por lo que he leído hay que hacerlo mediante referencias, pero, sinceramente, no sé qué son las referencias.

¿Alguien podría explicarme qué son y si hay alguna forma de devolver los hashes al estilo de como se hace para una variable normal?

Gracias.
vicca
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2012-04-16 03:44 @197

Publicidad

Re: Sobre referencias y hashes

Notapor explorer » 2012-10-04 09:39 @443

Sí que puedes devolver dos hashes desde una función:

return %a, %b;

pero el problema es que el código que lo reciba no podrá saber qué elementos pertenecían al hash %a y cuáles al %b. Lo que hace ese return es "desplegar" todas las parejas clave/valor de los dos hashes y enviarlos como una única lista de elementos.

Por eso lo mejor es devolver una referencia a ellos,

return \%a, \%b;

o hacer que el código llamante nos pase la referencia del hash donde quiere que le dejemos el resultado.

Así:

my(%a, %b);
funcion(\%a, \%b);


Más información en tu propio ordenador en perldoc perlref, y en la Web (traducido).
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

Re: Sobre referencias y hashes

Notapor vicca » 2012-10-04 11:24 @517

Muchas gracias por la respuesta.
Ya he conseguido hacerlo devolviendo una referencia a ellos como indicas y desreferenciando después. :D
vicca
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2012-04-16 03:44 @197


Volver a Básico

¿Quién está conectado?

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

cron