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


in reply to Moose, @ISA and method resolution

To start with, you did not explain what the actual you are getting is, that would be very helpful. It would also be helpful if you could paste the source for the Program::Plist::Pl::Pattern class as well as the Program::Plist::Pl::_create_pattern_obj code. Without that all we can do is guess.

How did I get to MooseX::Types::EXPORTED_TYPE_CONSTRAINT?

No idea, would help if we could see the code.

I don't see the output for Moose::Object::new at all, meaning I didn't get there. How have I short circuited the symbol table lookups to get to this code? Is my understanding of how a method is found wrong?

No, your understanding is correct, there is something else going on here which we might be able to diagnose if we could see the code :)

It would appear this code is being called to deal with the arguments to the Pattern->new call, but I see no functions in the arguments to the call.

It doesn't really make sense that it would, unless you are doing something funky in Program::Plist::Pl::Pattern::new, however it could also be Moose::Object::new trying to validate against the type constraint in one of your attriubtes. Again, seeing the code for Program::Plist::Pl::Pattern would help a TON.

And of course, make sure you are up to date on all modules (Moose, MooseX::Types, and MooseX::Params::Validate) if they are not all up to date you may be running into compat issues between them.

-stvn