Título: Problema en perl con Hash Publicado por: Ocelot1994 en 23 Abril 2017, 16:25 pm Hola buenas, tengo un problema a la hora de eliminar determinado valor de hash con su clave y valor correspondientes. He buscado y lo normal sería utilizar la clausula delete de está manera:
Código El problema que tengo es a la hora de trabajar con el hashMap ya que utilizo el módulo struct porque necesito otros tipos de datos y para trabajar es más sencillo, esto funcionaría de la siguiente manerar: Código Como veis al hacer el delete sobre esa referencia me falla. El error que me muestra el compilador es que delete no puede borrar un objeto que no es un hash, o array. Por eso mi duda es como hacer para poder borrar esa clave/valor de mi hashMap. Dejo aqui el modulo struct por si alguien no lo conoce: http://perldoc.perl.org/Class/Struct.html Espero que me podais ayudar , muchas gracias. Un saludo Título: Re: Problema en perl con Hash Publicado por: explorer en 24 Abril 2017, 22:01 pm Debes hacer lo siguiente: debes obtener una referencia al hash subyacente, de esta manera:
my $hash_ref = $obj->hashMap(); Y ahora ya puedes borrar ese elemento: delete $hash_ref->{A}; Fíjate en lo que dice el manual, en la sección «Element Types and Accessor Methods», en el apartado Hash. Título: Re: Problema en perl con Hash Publicado por: Ocelot1994 en 25 Abril 2017, 01:20 am Todo correcto, ya puedo borrar gracias a ti.
Muchas gracias y un saludo |