But you still don't avoid pulling in UNIVERSAL. Which is why I left it at, "It does something different." If you don't understand what you are doing differently and don't have a reason for it, well then you don't need to do this. But then again that is true for most of these solutions... :-)
Re (tilly) 3: Strict, strings and subroutines
Replies are listed 'Best First'.
I meant pulling in UNIVERSAL in that functions which exist in UNIVERSAL but not in the current package would be found by merlyn's can invocation, even though you might not want them to be. In other words his local @ISA trick doesn't quite succeed in making a method lookup into a function lookup because it still finds things in UNIVERSAL.