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 = Triangle::Right->new(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, since
they set initial parameters for an object that is probably just a
hash. Now that we have an object, we can invoke a 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 = $tri->hypot; print "The hypotenuse is: $h.\n";
In this particular ...
Get Perl in a Nutshell, 2nd Edition 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.