A little while ago I mentioned using the Observer pattern in SPOPS for code generation and rules. I finally decided code the Observable/Observer stuff up for general usage, and thus was born Class::Observable. It does have some overlaps with Class::Trigger and all the aspect-oriented foo. But I think the distinctions are sufficient for the module. Plus, parts of the API were borrowed directly from java.util.Observable and java.util.Observer, which will make the vast hordes of Java programmers moving over to Perl more comfortable...