Program Repair Shop 38

add_observer

        18  sub add_observer {
        19      my ( $item, @observers ) = @_;
        20      $O{ $item } ||= [];
        21      foreach my $observer ( @observers ) {
        22          $item->observer_log( "Adding observer '$observer' to ",
        23                               "'", _describe_item( $item ), "'" );
        24          my $num_items = scalar @{ $O{ $item } };
        25          $O{ $item }->[ $num_items ] = $observer;
        26          if ( ref( $observer ) ) {
        27              weaken( $O{ $item }->[ $num_items ] );
        28          }
        29      }
        30      return scalar @{ $O{ $item } };
        31  }

continued...