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

Changes for version 0.10

  • No longer a developer release
  • Added Listenable reusable aspect
  • Added subject_params() support for TestClass library aspect

Changes for version 0.09_3

  • Added Carp::Heavy to list of untouchables in Weaver.pm, to avoid Carp dumping core
  • Test::Class aspect allows for customizing IUT through init_subject_state

Changes for version 0.09_2

  • AdviceContext now has the original code, so you can do AspectJ-style around advice. You can call the original code from before or after advice. Added AdviceContext::run_original.
  • Memoize can memoize in any context, not just scalar, again
  • Added Test::Class helper aspect
  • Started using Devel::Symdump

Changes for version 0.09_1

  • Released for review by participants in YAPC::Israel 2004
  • New syntax is incompatible with old
  • New maintainer, Ran Eilam
  • Control flow pointcut: cflow(), done according to Marcel's design
  • Advice context trapping for control flow pointcuts
  • Use Test::Class for unit tests
  • Wormhole reusable aspect
  • Added prototypes so you can dispense with parentheses
  • Removed return/around pointcuts, added after advice
  • Removed attribute interface
  • Added a mutated version of Hook::LexWrap with support for appending/removing arguments
  • Moved reusable aspects to Aspect::Library
  • regression: Aspect exported subs generate join points again

Modules

AOP for Perl
change how Perl code is run at a pointcut
a pointcut context for advice code
Lexically scoped subroutine wrappers
Observer pattern with events
cross-cutting memoization
reusable method call profiling aspect
A singleton aspect
give Test::Class test methods an IUT (implementation under test)
A wormhole between call frames
base class for reusable aspects
pointcut base class
aspect weaving functionality

Provides

in lib/Aspect/Hook/LexWrap.pm
in lib/Aspect/Library/Listenable.pm
in lib/Aspect/Pointcut/AndOp.pm
in lib/Aspect/Pointcut/BinOp.pm
in lib/Aspect/Pointcut/Call.pm
in lib/Aspect/Pointcut/Cflow.pm
in lib/Aspect/Pointcut/NotOp.pm
in lib/Aspect/Pointcut/OrOp.pm
in lib/Aspect/Library/Profiler.pm