package Name; { use Object::InsideOut; my @name :Field :All(name); } 1; #### package Age; { use Object::InsideOut; my @age :Field :All(age) :Type(numeric); } 1; #### use Name; use Age; package Person; { use Object::InsideOut qw(Name Age); } 1; #### #!/usr/bin/perl use Person; my $person = Person->new( name => 'Bob', age => 32 ); print "Person's name is ", $person->name(); print " and age is ", $person->age(), "\n";