The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.90

  • Updating to Module::Install::DSL 0.97
  • Upgraded the old method-based match_run run-time context testing interface to a newer compiled_runtime context testing interface. The new interface cooks the run-time tests down to a single compiled perl condition where possible, and a set of nested function calls where strings cannot be used. The function calls alone are faster than methods, and the functions have no parameters, making them faster still. Tests that can be compiled all the way down to a string are even faster, because they avoid Perl's expensive function calls, and get even faster because Perl's opcode optimisations get a much better shot at improving the generated code.
  • Upgraded the weave-time mechanism to work using compiled code in the same fashion as the run-time code. This should make the weave costs (the time to scan the entire namespace) much lower as well.
  • Expanded out the POD documentation to cover the entire namespace tree.

Modules

Aspect-Oriented Programming (AOP) for Perl
Change how Perl code is run at a pointcut
The Join Point context (DEPRECATED)
Holding area for internal generated code
Base class for all reusable aspects
A breakpoint aspect
Observer pattern with events
A singleton aspect
A wormhole between call frames
First generation base class for reusable aspects
The Join Point context
API for determining which events should be hooked
Logical 'and' pointcut
Call pointcut
Cflow pointcut
Pointcut for preventing recursive matching
Pointcut that allows arbitrary Perl code
Pointcut logic role
Logical 'not' pointcut
Logical 'or' pointcut
Exception typing pointcut
A pointcut for the run-time wantarray context

Provides

in lib/Aspect/Advice/After.pm
in lib/Aspect/Advice/AfterReturning.pm
in lib/Aspect/Advice/AfterThrowing.pm
in lib/Aspect/Advice/Around.pm
in lib/Aspect/Advice/Before.pm
in lib/Aspect/Advice/After.pm
in lib/Aspect/Advice/AfterReturning.pm
in lib/Aspect/Advice/AfterThrowing.pm
in lib/Aspect/Advice/Around.pm
in lib/Aspect/Advice/Before.pm
in lib/Aspect/Library/Listenable/Event.pm
in lib/Aspect/Point/After.pm
in lib/Aspect/Point/AfterReturning.pm
in lib/Aspect/Point/AfterThrowing.pm
in lib/Aspect/Point/Around.pm
in lib/Aspect/Point/Before.pm
in lib/Aspect/Pointcut/Highest.pm