It works now.

I had to install both
        MooseX::NonMoose::InsideOut
     And
        MooseX::InsideOut

When I installed only MooseX::NonMoose::InsideOut I got the following.
Thanks for your quick/kind response.

        -Arne

$ perl -e 'use c; $a = c->new( host => "fred" );  print $a->name '
Can't locate MooseX/InsideOut/Role/Meta/Instance.pm in @INC (@INC contains: 
/usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl 
/usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .). at 
/usr/local/lib64/perl5/Class/MOP.pm line 135
        
Class::MOP::load_first_existing_class('MooseX::InsideOut::Role::Meta::Instance')
 called at /usr/local/lib64/perl5/Class/MOP.pm line 140
        Class::MOP::load_class('MooseX::InsideOut::Role::Meta::Instance', 
undef) called at /usr/local/lib64/perl5/Moose/Util.pm line 131
        Moose::Util::_apply_all_roles('Moose::Meta::Class=HASH(0x25d0fc0)', 
undef, 'MooseX::InsideOut::Role::Meta::Instance') called at 
/usr/local/lib64/perl5/Moose/Util.pm line 98
        Moose::Util::apply_all_roles('Moose::Meta::Class=HASH(0x25d0fc0)', 
'MooseX::InsideOut::Role::Meta::Instance') called at 
/usr/local/lib64/perl5/Moose/Meta/Class.pm line 104
        Moose::Meta::Class::create('Moose::Meta::Class', 
'Moose::Meta::Class::__ANON__::SERIAL::3', 'roles', 'ARRAY(0x2548438)', 
'weaken', '', 'superclasses', 'ARRAY(0x2548450)') called at 
/usr/local/lib64/perl5/Class/MOP/Package.pm line 121
        Class::MOP::Package::create_anon('Moose::Meta::Class', 'superclasses', 
'ARRAY(0x2548450)', 'roles', 'ARRAY(0x2548438)', 'cache', 1) called at 
/usr/local/lib64/perl5/Class/MOP/Class.pm line 473
        Class::MOP::Class::create_anon_class('Moose::Meta::Class', 
'superclasses', 'ARRAY(0x2548450)', 'roles', 'ARRAY(0x2548438)', 'cache', 1) 
called at /usr/local/lib64/perl5/Moose/Util/MetaRole.pm line 134
        Moose::Util::MetaRole::_make_new_class('Moose::Meta::Instance', 
'ARRAY(0x2548438)') called at /usr/local/lib64/perl5/Moose/Util/MetaRole.pm 
line 95
        
Moose::Util::MetaRole::_make_new_metaclass('Moose::Meta::Class=HASH(0x2403378)',
 'HASH(0x2548480)', 'class') called at 
/usr/local/lib64/perl5/Moose/Util/MetaRole.pm line 28
        Moose::Util::MetaRole::apply_metaroles('for', 'c', 'class_metaroles', 
'HASH(0x2548480)') called at /usr/local/lib64/perl5/Moose/Exporter.pm line 624
        Moose::Exporter::__ANON__('MooseX::NonMoose::InsideOut', 'for_class', 
'MooseX::NonMoose::Meta::Role::Constructor', 'metaclass', undef, 'meta_name', 
'meta') called at /usr/local/share/perl5/MooseX/NonMoose/InsideOut.pm line 24
        MooseX::NonMoose::InsideOut::init_meta('MooseX::NonMoose::InsideOut', 
'for_class', 'MooseX::NonMoose::Meta::Role::Constructor', 'metaclass', undef, 
'meta_name', 'meta') called at /usr/local/lib64/perl5/Moose/Exporter.pm line 420
        Moose::Exporter::__ANON__('MooseX::NonMoose::InsideOut') called at c.pm 
line 4
        c::BEGIN() called at 
/usr/local/share/perl5/MooseX/NonMoose/InsideOut.pm line 4
        eval {...} called at 
/usr/local/share/perl5/MooseX/NonMoose/InsideOut.pm line 4
        require c.pm called at -e line 1
        main::BEGIN() called at 
/usr/local/share/perl5/MooseX/NonMoose/InsideOut.pm line 4
        eval {...} called at 
/usr/local/share/perl5/MooseX/NonMoose/InsideOut.pm line 4
BEGIN failed--compilation aborted at c.pm line 4.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

-----Original Message-----
From: Jesse Luehrs [mailto:[email protected]] 
Sent: Monday, July 18, 2011 4:46 PM
To: [email protected]
Subject: Re: Using Moose with Expect.pm

On Mon, Jul 18, 2011 at 10:18:25PM +0000, Arne Romo wrote:
> I need help understanding how to use Moose to "extend" Expect.pm.
> It occurred to me that since Expect.pm is a non-moose module I need the
>     "use MooseX::NonMoose;"
> but my simple test program still fails.
> 
> Below I've include my simple perl script showing it fail when I use the
> "extends" and passing if I comment out the "extends".
> Clearly I'm missing something or need some higher level kungfu here 8)
> 
> Any help / simple working example would be greatly appreciated.
> This is my first foray into the Moose world so I'm just starting to learn
> this critter.
>     -Arne

Expect.pm doesn't use hashrefs for objects, so you need to tell Moose
how to handle that. The easiest way is to use
MooseX::NonMoose::InsideOut rather than MooseX::NonMoose.

-doy

Reply via email to