CPAN RT

A running program can be seen as a collection of events.
Events like a sub returning from a call,
or a package being used.
These are called join points.
A pointcut defines a set of join points,
taken from all the join points in the program.
Different pointcut classes allow you to define the set in different ways,
so you can target the exact join points you need.

Pointcuts are constructed as trees; logical operations on pointcuts with one or two arguments (not,
and,
or) are themselves pointcut operators.
You can construct them explicitly using object syntax,
or you can use the convenience functions exported by Aspect and the overloaded operators !,
& and |.