package Y1; sub new { ... $self->{X1} = X1->new(); $self->{MANY_X2} = [ X2->new(), X2->new() ]; ... } package main; my $obj = Y1->new(); print $obj->{X1}->{X1prop}; print $obj->{MANY_X2}->[1]->{X2prop};