I am using MooseX::ClassAttribute for the first time and seeing an error at compile time. I have put together an example that recreates the problem:
fail.pl: use 5.010; use strict; use warnings; use lib 'lib'; use FAIL::Foobaz; print "Hello Moose\n"; Foobaz.pm: package FAIL::Foobaz; use Moose; use MooseX::ClassAttribute; use namespace::autoclean; class_has 'class_attrib_1' => (is => 'ro', default => 'class_attrib_1'); __PACKAGE__->meta->make_immutable; 1; C:> perl -c fail.pl The method 'inline_clear' was not found in the inheritance hierarchy for Moose::Meta::Class::__ANON__::SERIAL::8 at C:/Perl/site/lib /Class/MOP/Class.pm line 1048 Class::MOP::Class::__ANON__('Moose::Meta::Class=HASH(0x3da31dc)', 'inline_clear') called at C:/Perl/site/lib/Class/MOP/Class .pm line 1093 Class::MOP::Class::add_around_method_modifier('Moose::Meta::Class=HASH(0x3da31dc)', 'inline_clear', 'CODE(0x3daf25c)') calle d at C:/Perl/site/lib/Moose/Meta/Role/Application/ToClass.pm line 224 Moose::Meta::Role::Application::ToClass::apply_method_modifiers('Moose::Meta::Role::Application::ToClass=HASH(0x3f70c74)', ' around', 'Moose::Meta::Role=HASH(0x3dac544)', 'Moose::Meta::Class=HASH(0x3da31dc)') called at C:/Perl/site/lib/Moose/Meta/Role/Appli cation.pm line 78 Moose::Meta::Role::Application::apply_around_method_modifiers('Moose::Meta::Role::Application::ToClass=HASH(0x3f70c74)', 'Mo ose::Meta::Role=HASH(0x3dac544)', 'Moose::Meta::Class=HASH(0x3da31dc)') called at C:/Perl/site/lib/Moose/Meta/Role/Application.pm li ne 64 Moose::Meta::Role::Application::apply('Moose::Meta::Role::Application::ToClass=HASH(0x3f70c74)', 'Moose::Meta::Role=HASH(0x3 dac544)', 'Moose::Meta::Class=HASH(0x3da31dc)') called at C:/Perl/site/lib/Moose/Meta/Role/Application/ToClass.pm line 35 Moose::Meta::Role::Application::ToClass::apply('Moose::Meta::Role::Application::ToClass=HASH(0x3f70c74)', 'Moose::Meta::Role =HASH(0x3dac544)', 'Moose::Meta::Class=HASH(0x3da31dc)', 'HASH(0x3780cfc)') called at C:/Perl/site/lib/Moose/Meta/Role.pm line 470 Moose::Meta::Role::apply('Moose::Meta::Role=HASH(0x3dac544)', 'Moose::Meta::Class=HASH(0x3da31dc)') called at C:/Perl/site/l ib/Moose/Util.pm line 159 Moose::Util::_apply_all_roles('Moose::Meta::Class=HASH(0x3da31dc)', undef, 'MooseX::ClassAttribute::Trait::Attribute') calle d at C:/Perl/site/lib/Moose/Util.pm line 98 Moose::Util::apply_all_roles('Moose::Meta::Class=HASH(0x3da31dc)', 'MooseX::ClassAttribute::Trait::Attribute') called at C:/ Perl/site/lib/Moose/Meta/Class.pm line 104 Moose::Meta::Class::create('Moose::Meta::Class', 'Moose::Meta::Class::__ANON__::SERIAL::8', 'roles', 'ARRAY(0x3f6b5ec)', 'we aken', '', 'superclasses', 'ARRAY(0x2a353c)') called at C:/Perl/site/lib/Class/MOP/Package.pm line 121 Class::MOP::Package::create_anon('Moose::Meta::Class', 'roles', 'ARRAY(0x3f6b5ec)', 'superclasses', 'ARRAY(0x2a353c)', 'cach e', 1) called at C:/Perl/site/lib/Class/MOP/Class.pm line 473 Class::MOP::Class::create_anon_class('Moose::Meta::Class', 'roles', 'ARRAY(0x3f6b5ec)', 'superclasses', 'ARRAY(0x2a353c)', ' cache', 1) called at C:/Perl/site/lib/Moose/Meta/Attribute.pm line 173 Moose::Meta::Attribute::interpolate_class('Moose::Meta::Attribute', 'HASH(0x3b14b1c)') called at C:/Perl/site/lib/Moose/Meta /Attribute.pm line 112 Moose::Meta::Attribute::interpolate_class_and_new('Moose::Meta::Attribute', 'class_attrib_1', 'default', 'class_attrib_1', ' is', 'ro', 'traits', 'ARRAY(0x3d9fa2c)') called at C:/Perl/site/lib/MooseX/ClassAttribute/Trait/Class.pm line 99 MooseX::ClassAttribute::Trait::Class::_process_new_class_attribute('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)' , 'class_attrib_1', 'default', 'class_attrib_1', 'is', 'ro') called at C:/Perl/site/lib/MooseX/ClassAttribute/Trait/Class.pm line 83 MooseX::ClassAttribute::Trait::Class::_process_class_attribute('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)', 'c lass_attrib_1', 'default', 'class_attrib_1', 'is', 'ro') called at C:/Perl/site/lib/MooseX/ClassAttribute/Trait/Class.pm line 35 Class::MOP::Class:::around('CODE(0x3e49f9c)', 'Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)', 'class_attrib_1', ' default', 'class_attrib_1', 'is', 'ro') called at C:/Perl/site/lib/Class/MOP/Method/Wrapped.pm line 162 Class::MOP::Method::Wrapped::__ANON__('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)', 'class_attrib_1', 'default' , 'class_attrib_1', 'is', 'ro') called at C:/Perl/site/lib/Class/MOP/Method/Wrapped.pm line 91 Moose::Meta::Class::__ANON__::SERIAL::1::add_class_attribute('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)', 'cla ss_attrib_1', 'default', 'class_attrib_1', 'is', 'ro') called at C:/Perl/site/lib/MooseX/ClassAttribute.pm line 37 MooseX::ClassAttribute::class_has('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)', 'class_attrib_1', 'is', 'ro', ' default', 'class_attrib_1') called at C:/Perl/site/lib/Moose/Exporter.pm line 356 MooseX::ClassAttribute::class_has('class_attrib_1', 'is', 'ro', 'default', 'class_attrib_1') called at lib/FAIL/Foobaz.pm li ne 8 require FAIL/Foobaz.pm called at fail.pl line 7 main::BEGIN() called at lib/FAIL/Foobaz.pm line 0 eval {...} called at lib/FAIL/Foobaz.pm line 0 Compilation failed in require at fail.pl line 7. BEGIN failed--compilation aborted at fail.pl line 7. I have some Moose class working fine with object attributes. When I add class attributes I see the above. Does the list have any ideas as to what the problem is?