This is more or less what you'd expect from the modifier body you'd write with Moose, however the lexical variables for parameters are pre-declared and pre-populated, and invocants have been shifted off @_.