use strict; use warnings; use Test::More 'tests' => 4; package foo; { use Object::InsideOut; my @foo :Field :Acc(foo) :Default({}); } package bar; { use Object::InsideOut; my @bar :Field :Acc(bar) :Arg(foo) :Default({}); } package main; my $foo1 = foo->new(); my $foo2 = foo->new(); $foo1->foo()->{a} = 1; $foo2->foo()->{a} = 2; is($foo1->foo()->{a}, 1); is($foo2->foo()->{a}, 2); my $bar1 = bar->new(); my $bar2 = bar->new(); $bar1->bar()->{a} = 1; $bar2->bar()->{a} = 2; is($bar1->bar()->{a}, 1); is($bar2->bar()->{a}, 2); exit(0); # EOF