>> Why doesn't use work? > That does work, there are several examples on CPAN of where it *has* > to work since that is shipped code. You'll need to provide more > details about the error you're getting for help figuring out what is > going on.
OK, here's an example that is broken on my work laptop. What am I doing wrong? I don't think it's a syntax error, is it? package Two; # (file called Two.pm) use Moose; has 'c' => { is => 'ro', isa => 'Str', required => 1, }; 1; package One; # (file called One.pm) use Moose; use Two; has 'a' => { is => 'ro', isa => 'Str', required => 1 }; has 'b' => { is => 'ro', isa => 'Two', required => 1 }; 1; Here's the stack trace that perl -wc One.pm throws: C:\projects\moose>perl -wc One.pm Usage: has 'name' => ( key => value, ... ) at C:/Perl/site/lib/Moose.pm line 64 Moose::has('Moose::Meta::Class=HASH(0x1f33234)', 'c', 'HASH(0x1f33ae4)') called at C:/Perl/site/lib/Moose/Exporter.pm line 288 Moose::has('c', 'HASH(0x1f33ae4)') called at Two.pm line 6 require Two.pm called at One.pm line 5 One::BEGIN() called at Two.pm line 0 eval {...} called at Two.pm line 0 Compilation failed in require at One.pm line 5. BEGIN failed--compilation aborted at One.pm line 5. I'm using ActiveState 5.10.1 (build 1006) with the Moose-0.92 PPM I tried this at home last night with Camelbox and got the same error. Thank you. --Mark