in reply to How to implement event/action processing engine?

In a way, such a framework is already written for you in Workflow, but the configuration language is XML.

In another way, you might fare better with using Prolog or AI::Prolog (or better the Perl bindings to SWI Prolog), depending on how you structure and write your criteria and whether you want a procedural logic flow like a sequence of if statements (first matched hits) or whether you want to find all matching clauses.