use strict; use warnings; package t::AA; { use Object::InsideOut; my @aa : Field({'acc'=>'aa', 'type' => 'num'}); } package t::BB; { use Object::InsideOut; my @bb : Field( { 'get' => 'bb', 'Set' => 'set_bb' } ); my %init_args : InitArgs = ( 'BB' => { 'Field' => \@bb, 'Default' => 'def', 'Regex' => qr/bb/i, }, ); } package t::AB; { use Object::InsideOut qw(t::AA t::BB); my @data : Field({'acc'=>'data'}); my @info : Field('gET'=>'info_get', 'SET'=>'info_set'); my %init_args : InitArgs = ( 'data' => { 'Field' => \@data, }, 'info' => { 'FIELD' => \@info, 'DEF' => '' }, ); } 1;