1 { 2 package Local::Person; 3 use Moose; 4 has name => ( 5 is => 'ro', 6 isa => 'Str', 7 ); 8 __PACKAGE__->meta->make_immutable; 9 } 10 11 { 12 package Local::Marriage; 13 use MooseX::ArrayRef; 14 has husband => ( 15 is => 'ro', 16 isa => 'Local::Person', 17 ); 18 has wife => ( 19 is => 'ro', 20 isa => 'Local::Person', 21 ); 22 __PACKAGE__->meta->make_immutable; 23 } 24 25 my $marriage = Local::Marriage->new( 26 wife => Local::Person->new(name => 'Alex'), 27 husband => Local::Person->new(name => 'Sam'), 28 ); 29 30 use Data::Dumper; 31 use Scalar::Util qw(reftype); 32 print reftype($marriage), "\n"; # 'ARRAY' 33 print Dumper($marriage); 34 35