Program Repair Shop 67

Bonus slides

     package Class::Observable::Delegate;
     use base 'Class::Observable';
     sub new { my $dummy = ""; bless \$dummy => $_[0] }
     sub get_observers { my $s = shift; $s_->[37]->get_observers(@_) }
     sub notify_observers { my $s = shift; $s_->[37]->notify_observers(@_) }
     sub add_observers { my $s = shift; $s_->[37]->get_observers(@_) }
     ...
     package ArrayObjects;
     use base 'Class::Observable::Delegate';
     sub new { my $self = []; 
               $self->[37] = Class::Observable::Delegate->new; 
               ...
               bless $self => $_[0]
             }
     ...