$ perl -MMyClass -le 'print SubClass::->new()->get_subclass_object()'
MyClass already has a metaclass, but it does not inherit Moose::Meta::Class (Class::MOP::Class=HASH(0x7f918c72e440)). at /Users/ken/perl5/perlbrew/perls/perl-5.22.0t/lib/site_perl/5.22.0/darwin-thread-multi-2level/Moose/Exporter.pm line 484
Moose::import('Moose') called at MyClass.pm line 3
MyClass::BEGIN at MyClass.pm line 3
eval {...} at MyClass.pm line 3
require MyClass.pm at -e line 0
main::BEGIN at MyClass.pm line 3
eval {...} at MyClass.pm line 3
BEGIN failed--compilation aborted at MyClass.pm line 3.
Compilation failed in require.
BEGIN failed--compilation aborted.
####
package MyClass;
use Moose;
use SubClass;
##
##
$ perl -MMyClass -le 'print SubClass::->new()->get_subclass_object()'
SubClass=HASH(0x7fc4f2bb4148)
##
##
$ perl -MSubClass -le 'print SubClass::->new()->get_subclass_object()'
SubClass=HASH(0x7fb6698259a8)
##
##
sub get_subclass_object {
my $class = ref $_[0];
return $class->new;
}
##
##
package OtherSubClass;
use Moose;
extends 'MyClass';
1;
##
##
$ perl -MSubClass -le 'print SubClass::->new()->get_subclass_object()'
SubClass=HASH(0x7fae2280f258)
##
##
$ perl -MOtherSubClass -le 'print OtherSubClass::->new()->get_subclass_object()'
OtherSubClass=HASH(0x7fa721030da8)