Program Repair Shop 22

Overencapsulation

     sub add_observer { 
        ...
        push @{$O{ $item }}, $observer;
        if ( ref( $observer ) ) {
            weaken( $O{ $item }->[ -1 ] );
        }
        ...
     }
        my %Observers;
        
        sub _ob_hash { \%Observers }
        
        sub add_observer { 
           ...
           local *O = $self->_ob_hash;
           push @{$O{ $item }}, $observer;
           if ( ref( $observer ) ) {
               weaken( $O{ $item }->[ -1 ] );
           }
           ...
        }