| ☞ | Program
Repair Shop ![]() |
35 |
sub direct_observers_object {
my $self = shift;
return $self->{"Class::Observable::_observers"} ||= [];
}
Now reconsider the question "What if the watched object is not a hash?"
We now have a better answer:
Answer 3: Subclass Class::Observable and override direct_observers_object:
sub direct_observers_object {
my $self = shift;
return $self->[37] ||= [];
}
We can also get back the original implementation this way if we want to:
sub direct_observers_object {
my $self = shift;
return $O{$self} ||= [];
}
| ☞ | ![]() |
☞ |