package Handler::Colors;
use YAML qw(Load); # or some other module to handle config-like files
# set up a bunch of event handlers that
# send email depending on colour
sub init {
my $colors = Load('/color/config');
my @handlers;
while (my ($color,$email) = each %$colors) {
@handlers = Handler::Colors->new(
{
color => $color,
email => $email
}
);
}
return @handlers; #update: added this line!
}
# create handler object
sub new {
my $class = shift;
return bless { @_ },$class;
}
# check for my color and send email if found.
sub handle {
my ($self,$event) = @_;
if ($self->{color} eq $event->color()) {
send_mail($self->{email});
}
}
####
push @event_handlers,"Handler::$_";
####
push @event_handlers,"Handler::$_"->init();