Method modifiers or wrappers
- before $name|@names => sub { ... }
- Executes before the given method;
- $self is pass as the first argument
- after $name|@names => sub { ... }
- Executes after the given method;
- $self is pass as the first argument
- around $name|@names => sub { ... }
- Executes around the given method;
- The code ref of the method that is being wrapped is passed as the first argument then $self is passed as the second.