☞ | ![]() ![]() |
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} ||= []; }
☞ | ![]() |
☞ |