Generally, a constructor should not "do" anything other than to perform base initialization on the object ... i.e. when "undef" is not enough. Default-methods in this case are probably just the ticket. Otherwise consider defining some sort of "init" method (of your own devising) which you call, just out of habit, after creating the object.