Perl é uma linguagem de programação orientada a objetos, dinâmica e baseada em interpretador . Na programação orientada a objetos, temos três aspectos principais, que são objeto, classe e métodos. Um objeto é um tipo de dados que pode ser chamado especificamente como uma instância da classe à qual pertence. Pode ser uma coleção de variáveis ​​de dados de diferentes tipos de dados e também uma coleção de diferentes estruturas de dados. Métodos são funções que funcionam nesses objetos da classe.
 
A seguir está um exemplo básico para entender melhor como os objetos podem ser usados ​​em Perl:

Primeiro , precisamos definir a classe. Em Perl, isso é feito construindo o pacote da classe. Pacote é uma entidade encapsulada que possui todos os membros de dados e os métodos da classe em questão.

package Employee;

Aqui, Employee é o nome da classe.

A segunda tarefa é criar uma instância do pacote (ou seja, o objeto). Para isso, precisamos de um construtor. Um construtor é uma sub-rotina em Perl que geralmente recebe o nome de 'novo' . No entanto, o nome é definido pelo usuário, portanto, não restrito a 'novo'.

package Employee;
  
# Constructor with name new
sub new 
{
    my $class = shift;
    my $self = {
                  _serialNum => shift,
                  _firstName => shift,
                  _lastName  => shift,
              };
      
    bless $self, $class;
    return $self;
}

No construtor, estamos definindo uma referência de hash simples $self para projetar nosso objeto. Aqui, o objeto terá três valores serialNum, firstName e lastName de um Employee, o que significa que cada funcionário envolvido terá seu próprio conjunto de número de série, nome e sobrenome. A mypalavra-chave é um especificador de acesso que está localizando $class e $self para estarem dentro do bloco fechado. shiftpalavra-chave pega o nome do pacote do array padrão “@_” e o passa para a função bless.
blessA função é usada para retornar uma referência que finalmente se torna um objeto.
E no final, o construtor finalmente retornará a instância da classe Employee (aqui).

Finalmente , a parte principal é como inicializar um objeto. Isso pode ser feito da seguinte maneira:

$object = new Employee(1, "Geeks", "forGeeks");

Aqui, $object é uma variável escalar que é uma referência ao hash definido no construtor.

A seguir está o programa de exemplo para a criação e implementação de objetos em OOPs:

use strict;
use warnings;
  
# class with the name Employee
package Employee;
  
# constructor with the name new
sub new 
{            
    # shift will take package name 
    # and assign it to variable 'class'
    my $class = shift;    
      
    # defining the hash reference
    my $self = {                         
                _serialNum => shift,
                _firstName => shift,
                _lastName => shift,
               };
      
    # Attaching object with class
    bless $self, $class;
      
    # returning the instance of class Employee
    return $self;                         
}
  
# Object creation of the class
my $object = new Employee(1, "Geeks", "forGeeks");
  
# object here is a hash to a reference
print("$object->{_firstName} \n");             
print("$object->{_serialNum} \n");    
Saída:
Geeks 
1

Um objeto em Perl funciona da mesma forma que em outras linguagens como C++, Java, etc. O programa acima mostra o funcionamento de um objeto em Perl, sua criação e seu uso na classe.