in reply to Moose & Moose::Object

However, When I check the source code(2) of Moose.pm, It seems to me that Moose.pm only use Moose::Object, that is , import its functions, instead of inheriting from it.

That seems to be the case as this code demonstrates

$ perl -le" package Yo; use Moose; print Yo->new->isa('Moose')" $ perl -le" package Yo; use Moose; print Yo->new->isa('Moose::Object') +" 1 $ perl -le" use Moose; print Moose::Object->new; print Moose->new; " Moose::Object=HASH(0xf86fa4) Can't locate object method "new" via package "Moose" at -e line 1. $
Yo is a Moose-using class, and it inherits from Moose::Object, not Moose.

So, do I miss something here?

You're thinking too hard about how it works, purpose of Moose is to make your life easy, just use it :)