my new { my ($class, ...) = @_; my $self = $class->SUPER::new(...); $self->{...} = ...; $self->{...} = ...; return $self; } #### use constant IDX_... => Parent::NEXT_IDX() + 0; use constant IDX_... => Parent::NEXT_IDX() + 1; use constant NEXT_IDX => Parent::NEXT_IDX() + 2; my new { my ($class, ...) = @_; my $self = $class->SUPER::new(...); push(@$self, ..., # IDX_... ..., # IDX_... ); return $self; }