Program Repair Shop 50

Recursion

        sub _class_observers {
          my $self = shift;
          my $class = ref($self) || $self;
          my @result = @{$class->direct_observers};
          {
            no strict 'refs';
            for (@{"$class\::ISA"}) {
              push @result, $_->_class_observers
                if $_->isa(__PACKAGE__);
            }
          }
          return @result;
        }