Czy można użyć obiektu jako klucza skrótu?Obiekt jako klucz mieszający
Na przykład, następujący kod pozwala mi korzystać instancję MojaKlasa jako klucz ale gdy iteracyjne nad klawiszami i próba wywołania metody get_value
, pojawia się błąd:
nie może zlokalizować metoda obiektu "get_value" za pośrednictwem pakietu "MyClass = hASH (0x12a4040)" (być może zapomniałeś załadować "MyClass = 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;
}