Neste mundo moderno, onde o uso da programação atingiu o seu máximo e tem sua aplicação em todas as obras de nossas vidas, precisamos nos adaptar a esses paradigmas de programação que estão diretamente ligados aos exemplos do mundo real. Houve uma mudança drástica na competitividade e na complexidade dos problemas do mundo real, portanto, a indústria agora requer algumas abordagens versáteis para essas complexidades. O conceito de linguagem de programação orientada a objetos lida confortavelmente com essas complexidades e é uma maneira perfeita de moldar qualquer linguagem de programação de forma que os exemplos do mundo real se tornem muito fáceis de resolver. A Programação Orientada a Objetos (OOP) usa a metodologia de enfatizar mais os objetos do que o procedimento. O conceito de OOPs é sobre trabalhar em termos de objetos e a interação entre objetos. 

Nota: A programação orientada a objetos visa implementar entidades do mundo real como herança , encapsulamento , polimorfismo , etc. na programação. O objetivo principal do OOP é vincular os dados e as funções que operam neles de forma que nenhuma outra parte do código possa acessar esses dados, exceto aquela função.

Objeto -

Um objeto é uma instância de uma classe da estrutura de dados com algumas características e comportamento. Por exemplo, dizemos que uma “maçã” é um objeto. Suas características são: é um fruto , sua cor é vermelha , etc . Seu comportamento é: ” sabe bem “. No conceito de OOPs, as características de um objeto são representadas por seus dados e o comportamento é representado por suas funções associadas. Assim, um objeto é uma entidade que armazena dados e tem sua interface por meio de funções.

Classe -

Uma classe é um conceito expandido de estruturas de dados. Ele define um projeto de protótipo de objetos compostos de dados. E um objeto é uma instância de uma classe. Uma classe é composta por membros de dados e funções de dados e é um tipo de dados predefinido feito de acordo com os requisitos do usuário, que pode ser acessado e usado criando uma instância dessa classe.

Exemplo: 
Considere uma classe da Escola . Pode haver escolas com nomes e estruturas diferentes, mas todas elas compartilham algumas características comuns, como alunos, professores, funcionários, etc. Portanto, aqui escola é a classe com professores, alunos e pais como membros dos dados, e as funções de membro podem ser Calcule_students_marks(), Calcule_teachers_salary() e Parents_Database(). 

Membro de dados: Membros de dados são as variáveis ​​de dados e funções de membro são as funções usadas para manipular essas variáveis ​​e, juntos, esses membros de dados e funções de membro definem as propriedades e o comportamento dos objetos em uma classe. 

Definindo uma classe -

É muito fácil definir uma classe em Perl. Em Perl, uma classe corresponde a um pacote. Para definir uma classe, primeiro carregamos e construímos um Pacote . Um Pacote é uma unidade pré-contida de variáveis ​​e sub-rotinas definidas pelo usuário, que pode ser usada em todo o programa.

Sintaxe:  

package Class_name

Criando Classe e Usando Objetos

Uma classe em Perl pode ser criada usando o pacote de palavras-chave, mas para criar um objeto, um construtor é chamado. Um construtor é definido em uma classe como um método. 

Criando uma instância de uma classe 
Um nome de classe e um nome de construtor podem ser conforme os requisitos do usuário. A maioria dos programadores prefere usar 'novo' como um nome de construtor para seus programas, pois é fácil de lembrar e é mais viável de usar do que qualquer outro nome de construtor complexo.  

package student     // This is the class student
sub Student_data    // Constructor to class
{
    my $class = shift;
    my $self = {
                _StudentFirstName => shift;
                _StudentLastName => shift;
               };
                
    print "Student's First Name is $self ->{_StudentFirstName}\n";
    print "Student's Last Name is $self ->{_StudentLastName}\n";
    bless $self, $class;
    return $self;
}

No código de exemplo acima, uma função chamada bless é usada. Esta função é usada para anexar um objeto a uma classe que é passada para ele como um argumento. 

Sintaxe: 

bless Object_name, Class Name

Criando um objeto 
Um objeto em Perl é instanciado usando o construtor definido na classe. Um nome de objeto pode ser qualquer variável conforme a necessidade do usuário, mas é convencional nomeá-lo de acordo com a relevância com a classe.  

$Data = Student_data student( "Shikhar", "Mathur");

Exemplo: 

use strict;
use warnings;
 
package student;
 
# constructor
sub student_data
{
 
    # shift will take package name 'student'
    # and assign it to variable 'class'
    my $class_name = shift;
    my $self = {
                'StudentFirstName' => shift,
                'StudentLastName' => shift
               };
    # Using bless function
    bless $self, $class_name;
     
    # returning object from constructor
    return $self;
}
 
# Object creating and constructor calling
my $Data = student_data student("Geeks","forGeeks");
 
# Printing the data
print "$Data->{'StudentFirstName'}\n";
print "$Data->{'StudentLastName'}\n";
Saída: 
Geeks
forGeeks

 

O conceito de usar classes em Programação Orientada a Objetos é muito importante, pois representa completamente as aplicações do mundo real e pode ser adotado em problemas do mundo real.