Object Constructors
Subroutines can also return references. That may sound trite, but
sometimes you are supposed to use a subroutine
to create a reference rather than creating the reference yourself.
In particular, special subroutines called constructors create and return
references to objects. An object is simply a special kind of
reference that happens to know which class it’s associated with, and
constructors know how to create that association. They do so by
taking an ordinary referent and turning it into an object with
the bless operator, so
we can speak of an object as a blessed reference. There’s nothing
religious going on here; since a class acts as a user-defined type,
blessing a referent simply makes it a user-defined type in addition
to a built-in one. Constructors are often named new—especially by C++ and Java
programmers—but they can be named anything in Perl.
Constructors can be called in any of these ways:
$objref = Doggie::–>new(Tail => "short", Ears => "long"); #1 $objref = new Doggie:: Tail => "short", Ears => "long"; #2 $objref = Doggie–>new(Tail => "short", Ears => "long"); #3 $objref = new Doggie Tail => "short", Ears => "long"; #4
The first and second invocations are the same. They both call
a function named new that is
supplied by the Doggie module.
The third and fourth invocations are the same as the first two, but
are slightly more ambiguous: the parser will get confused if you
define your own subroutine named Doggie. (Which is why people typically stick with ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access