package Observable; use strict; sub new { my $class = shift; my $self = {}; $self->{observers} = []; $self->{num_observers} = 0; bless $self, $class; } sub addObserver { my $self = shift; my $o = shift; if ($self->{num_observers} < 500) { $self->{observers}->[$self->{num_observers}] = $o; $self->{num_observers}++; } } sub notifyObservers() { my $self = shift; my $i; for ($i=0; $i<$self->{num_observers}; $i++) { $self->{observers}->[$i]->update($self); } } 1;