use strict; use warnings; use Types::Standard -types; use MooX::Struct Cat => ['$name']; use MooX::Struct Litter => ['@cats' => [ isa => ArrayRef[InstanceOf[Cat]] ]]; my $cat1 = Cat->new(name=>'Garfield'); my $cat2 = Cat->new(name=>'Felix'); my $litter = Litter->new(cats => [$cat1, $cat2, 1]);