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.