The child class only inherits the fact that it has a property named changing_data from the parent, each object only has one property named changing_data. An object is just a fancy hashref, you have two: $p = bless { changing_data=>'bar bar bar' }, 'parent' and $child = bless { changing_data=>'foo foo foo' }, 'child'. $p->changing_data('bar bar bar'); only sets the parent's property, how do you expect that to reach the child class?