http://www.perlmonks.org?node_id=416924


in reply to Re^3: goto superclass method
in thread goto superclass method

How do you know in general whether the object or class has its own can though? (Easy answer, but not one you'll like.)

I prefer to use Scalar::Util's blessed to see if I can invoke operations on an object, though wrapping the call in an eval block is safer if you expect class names as well.

Replies are listed 'Best First'.
Re^5: goto superclass method
by Ovid (Cardinal) on Dec 22, 2004 at 22:19 UTC

    I guess in this case it would be preferable to call call can as a method and let the code die and then worry about what to do if it fails. That's probably better than my silently failing or doing the wrong thing because of an overridden can.

    Cheers,
    Ovid

    New address of my CGI Course.

      My thinking is that if a superclass has overriden can(), then they have good reason to, so in a situation where you know you have a blessed ref or a package name, you should prefer calling it as a method. I only use UNIVERSAL::can directly when I'm unsure about that.

      Makeshifts last the longest.