Soooooooo... what he's looking for and failing to find is Perl, Type::Tiny, and Moose :P
use Moose;
sub foo {
...
}
around foo => sub {
say "Called with args: @_";
}