Not quite.
There's nothing special about those functions. The magic is Perl acting as if UNIVERSAL was in @ISA when doing a method call. Apparently, can doesn't. Bug!
>perl -wle "{ package UNIVERSAL; sub test { '!' } } print I->can('test
+')?1:0;"
0
>perl -wle "{ package UNIVERSAL; sub test { '!' } } print I->test;"
!
The interesting part is
that neither the argument nor the return value of can matters in that snippet.
| [reply] [d/l] [select] |