In cases where I need to re-bless a hashref from a parent class constructor, I just use a second level hash for my instance data, e.g. $self->{ThisClass}{foo}. I find this easier, because if I have any complicated initialization stuff or just a lot of instance data, I can fiddle around with a separate %data hash and then do $self->{ThisClass} = \%data; when I'm done.