package Person; sub new { bless { name => $_[1], job => $_[2] }, $_[0] } sub name { $_[0]{name} } sub job { $_[0]{job} } package Person::Resumefied; sub new { bless { name => $_[1], jobs => [ @$_[2] ] }, $_[0] } sub jobs { @{$_[0]{jobs}} }; sub job { $_[0]{jobs}[$#{$_[0]{jobs}}] } # the last job is assumed current