Method modifiers are a powerful feature from the CLOS (Common Lisp
Object System) world.

In its most basic form, a method modifier is just a method that
calls $self->SUPER::foo(@_). I for one have trouble remembering
that exact invocation, so my classes seldom re-dispatch to their
base classes. Very bad!

Class::Method::Modifiers provides three modifiers: before, around,
and after. before and after are run just before and after the method
they modify, but can not really affect that original method. around
is run in place of the original method, with a hook to easily call
that original method. See the MODIFIERS section for more details
on how the particular modifiers work.

Homepage:
https://metacpan.org/release/Class-Method-Modifiers
