#!/usr/bin/perl use strict; use warnings; package Vehicle; sub new { my $class = @_; my $self = { _engine => "I have an engine.", _wheel => "I have wheels.", _door => "I have doors." }; bless $self, $class; return $self; } package Private; sub new { my $class = @_; my $self = { _Vehicle => new Vehicle(), _private => "I am private" }; bless $self, $class; return $self; } package Family; sub new { my $class = @_; my $self = { _Private => new Private(), _passengers => "I carry 5 passengers", _goods => "I carry 50lbs" }; bless $self, $class; return $self; } package main; my $car = new Family(); foreach $car (sort keys my %hash) { print "$car => $hash{$car}\n"; }