in reply to I can

The funny thing is that even though I->can() doesn't return an error, I->can("can") returns undef. So I can can(), but I->cannot ("can").

Replies are listed 'Best First'.
Re^2: I can
by ikegami (Patriarch) on Jul 01, 2006 at 22:05 UTC

    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.