Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^3: Perl semi-object without a constructor

by tobyink (Abbot)
on Feb 21, 2013 at 17:37 UTC ( #1019990=note: print w/replies, xml ) Need Help??

in reply to Re^2: Perl semi-object without a constructor
in thread Perl semi-object without a constructor

"All of the texts I looked at started with a package and a sub called 'new' to create the object."

It is convention to name constructors new but there's no requirement to do so. You could just as well call it old or frangipane and it would make not one whit of difference to the Perl interpreter. But the reason that you should call a constructor new (and not old or frangipane) is for humans reading your code. When they see new they'll know precisely what that method call is doing!

That said, it's quite common for a class to define additional constructors such as new_from_json or new_from_yaml in addition to their standard new constructor. These are often wrappers around new that do additional pre-processing or post-processing.

package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1019990]
[Eily]: yes we're pretty prawn to making puns around here
Eily went to the wiktionary to check that the pronunciations of prawn and prone are actually similar. Turns out prawn can be an alternative form of porn...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (6)
As of 2017-06-29 12:48 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (662 votes). Check out past polls.