package Foo; our $count = 0; sub new { my $class = (ref($_[0]) ? ref(shift) : shift); $count++; return bless({ @_ }, $class); } package Bar; our @ISA = ('Foo'); sub new { my $self = SUPER::new(@_); #Anything unique to this class can now be applied to the object... return $self; }