¿Es posible utilizar un objeto como una tecla hash?Objeto como clave hash
Por ejemplo, el siguiente código me permite usar una instancia de MyClass como una clave pero cuando iterar sobre las claves y el intento de invocar el método get_value
, me sale el error:
no puede localizar método de objeto "Get_Value" a través de paquete "MiClase = HASH (0x12a4040)" (tal vez se olvidó de cargar "MiClase = HASH (0x12a4040)"?)
package MyClass;
use strict;
sub new
{
my $class = shift;
my $self = {
_value => shift
};
bless $self, $class;
return $self;
}
sub get_value {
my($self) = @_;
return $self->{_value};
}
my %hash =();
%hash->{new MyClass(1)} = 0;
%hash->{new MyClass(2)} = 1;
for my $key (keys %hash)
{
print $key->get_value;
}