Object Syntax
Perl uses two forms of syntax for invoking methods on objects. For both types of syntax, the object reference or class name is given as the first argument. A method that takes a class name is called a class method, and one that takes an object reference is called an instance method.
Class methods provide functionality for the entire class, not just for a single object that belongs to the class. Class methods expect a class name as their first argument. Following this explanation, a constructor is an example of a class method:
sub new { my $self = {}; bless $self; return $self; }
On the other hand, an instance method expects an object reference as its first argument. An instance method will shift the first argument and use this argument as a reference:
sub instance_method { my $self = shift; my($one, $two, $three) = @_; # do stuff }
Here is an example of a constructor creating a new object and returning a reference:
$tri = new Triangle::Right (side1 => 3, side2 => 4);
This example creates a new right-triangle object and references it
with $tri
. The parameters are given as a hash-style list. This
is common for constructors, as they set initial parameters for an
object that is probably just a hash. Now that we have an object, we
can invoke some method on it. Suppose Triangle::Right defines a method,
hypot
, that returns the length of the hypotenuse for a given
right-triangle object. It would be used like this:
$h = hypot $tri; print "The hypotenuse is: $h.\n";
In this ...
Get Perl in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.