in reply to Re: How to get function's name inside of CODE attribute
in thread How to get function's name inside of CODE attribute
I added in Attribute::Lexical to avoid the need to monkeypatch UNIVERSAL.
You don't have to read much of the code before you get to:
unshift @UNIVERSAL::ISA, "Attribute::Lexical::UNIVERSAL";
So, this module avoids adding methods to UNIVERSAL (I assume), but adding a super class after the fact is certainly also monkey patching.
(Yes, I actually implement attributes without monkey patching UNIVERSAL at all and much more simply and, IMHO, sanely and buttoning that up for CPAN is on my to-do list.)