Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Calling module function from within a blessed module

by Bod (Parson)
on Jan 03, 2021 at 11:57 UTC ( [id://11126193]=note: print w/replies, xml ) Need Help??


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

Never, ever, ever do this. The one argument version of bless really should issue a warning.

Actually, in real code I do not generally use the one argument version. I created that as a minimal example to support the question.

Having said that, I don't know why I avoid the single argument version. It is because I have copied other code that works and looks like the author knows what they are doing which is not exactly the most rigorous methodology for learning...

  • Comment on Re^2: Calling module function from within a blessed module

Replies are listed 'Best First'.
Re^3: Calling module function from within a blessed module
by dsheroh (Monsignor) on Jan 03, 2021 at 12:45 UTC
    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).

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11126193]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2024-04-25 04:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found