| Next | Program Repair Shop | 33 |
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} ||= [];
}
| Next | ![]() |
Copyright © 2006 M. J. Dominus |