Kann ein Objekt als Hash-Schlüssel verwendet werden?Objekt als Hash-Schlüssel
Zum Beispiel der folgende Code ermöglicht es mir, eine Instanz von MyClass als Schlüssel zu verwenden, aber wenn ich die Schlüssel überlaufen und versuchen, die get_value
Methode aufzurufen, erhalte ich die Fehlermeldung:
kann nicht gefunden werden Objektmethode "get_value" über-Paket "MyClass = hash (0x12a4040)" (vielleicht vergessen Sie "MyClass = hash (0x12a4040)"? zu laden) als Hash-Schlüssel wird verwendet, Zeichenfolge
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;
}