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


in reply to Re: Failing inheritance or what can make a Child disinherited ?
in thread Failing inheritance or what can make a Child disinherited ?

Couldn't agree more with you, this is I think the real indicator of a serious problem as I AM calling with different variations of method invocation "->"

The error message you indicate would be more normal, showing signs of dispatch mechanism not finding the requested method

  • Comment on Re^2: Failing inheritance or what can make a Child disinherited ?

Replies are listed 'Best First'.
Re^3: Failing inheritance or what can make a Child disinherited ?
by shemp (Deacon) on Aug 02, 2004 at 20:24 UTC
    Not too long ago i created this piece of code to try to help with some debugging. It should tell you the entire ancestor tree of your object. I dont think the order is exactly like the way that methods would be searched for, but i thought of this code when i first read your post.

    Put this method in your Child class. (hopefully you'll be able to call it.)

    sub isa_descent { my $self = shift @_; my ($class) = @_; print "\npackage: $class\n"; no strict 'refs'; my @ancestors = @{ 'main::' . $class . '::ISA' }; use strict; foreach my $ancestor ( @ancestors ) { print "...ancestor: $ancestor\n"; $self->isa_descent($ancestor); } }
    You'll want to call it from outside the class probably, perhaps just after creating the object instance. The output wont change unless you're messing with @ISA.
    $o->isa_descent(ref $o);