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:
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:
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
Código (perl) [Seleccionar]
my %hashMap;
$hashMap{"A"} = 1;
$hashMAp{"B"} = 2;
#Si quiero borrar un valor de este ejemplo, me basta con:
delete $hashMap{"A"};
#Y me borra la clave "A" y el valor 1.
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 (perl) [Seleccionar]
struct( scalar => '$', a => '@', hashMap => '%', class => 'My_Other_Class' );
$obj = new Myobj;
#Para definir una clave valor lo unico que tengo que hacer es:
$obj->hashMap("A" , 1);
$obj->hashMap("B" , 2);
#Y para obtener el valor;
$obj->hashMap("A");
#Ahora bien, si quiero borrar lo logico seria esto:
delete $obj->hashMap("A"); #Pero justo aqui falla
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