http://qs321.pair.com?node_id=598389


in reply to Detecting Overridden Methods

If you know the set of methods you'll need to query, you could check before any of your methods are installed.
package MyPackage; use base "Whatever"; our $can_foo; BEGIN { $can_foo = 1 if MyPackage->can("foo"); } sub foo { 'Whee!' } sub check { return $can_foo; }
Update: But in direct answer to your question, this (surprisingly) seems to work:
MyPackage->can("SUPER::foo")

Replies are listed 'Best First'.
Re^2: Detecting Overridden Methods
by ikegami (Patriarch) on Feb 05, 2007 at 19:38 UTC

    our $can_foo;
    is not as good as
    my $can_foo;
    There's no need for a package variable here.

    MyPackage->can("foo");
    is not as good as
    __PACKAGE__->can("foo");
    Less redundancy means smaller chance to make an error.

    I had written this solution before coming up with the one I posted. I couldn't see any advantages to it, so I only included it in my post in comment tags.