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