http://qs321.pair.com?node_id=11126196


in reply to Re^2: Calling module function from within a blessed module
in thread Calling module function from within a blessed module

The reason why you generally shouldn't use the one-argument version of bless is because it makes subclassing more difficult.

If you have two classes, Parent and Child, and Parent uses bless {}, $_[0];, then Child can simply inherit Parent's new (or other constructor) and Child->new() will Just WorkTM.

If Parent uses one-argument bless, then it will always create a Parent object, and Child will have to override the constructor (either writing a completely new constructor, or calling Parent's constructor and re-blessing the result before returning it).