The Perl 5 module Object::Event provides a simple way to extend a class with an event callback interface.