To further elaborate, the signature for bless is
bless( $ref, $class = __PACKAGE__ ). In other words, you have to pass it the reference that you're blessing. If you pass it a classname, it will bless the $ref into that class. If you don't, it will default to __PACKAGE__ which is a built-in that resolves to the current package name. If you inherit the constructor and that constructor uses the single-arg form of bless, you won't ever get an object of your child class.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?