是否可以將對象用作散列鍵?作爲散列鍵的對象
例如,下面的代碼允許我使用MyClass的實例作爲重點,但是當我遍歷鍵,並試圖調用get_value
方法,我得到的錯誤:
無法找到對象的方法 「的get_value」 通過包 「MyClass的= HASH(0x12a4040)」(也許你忘了裝載 「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;
}