是否可以将对象用作散列键?作为散列键的对象
例如,下面的代码允许我使用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;
}