Perl Orientado a Objeto Part I
Tags: perl, poo, beginners, braziliandevs
Published: 2022-04-21 20:49:21

---

Como começar a programar em **Perl** da maneira correta. ~~(Diferente de mim)~~

[Perl Orientado a Objeto Part I]
(https://dev.to/victoriabispo/perl-orientado-a-objeto-1bd1/)

[Perl Orientado a Objeto Part II](https://dev.to/victoriabispo/perl-orientado-a-objeto-part-ii-2o54)

[Perl Orientado a Objeto Part III](https://dev.to/victoriabispo/perl-orientado-a-objeto-part-iii-4fe2)

[Moo - Orientação de objeto minimalista](https://dev.to/victoriabispo/moo-orientacao-de-objeto-minimalista-6el)

# A linguagem de programação Perl

> *“A linguagem pretende ser prática (fácil de usar, eficiente, completa) ao invés de bonita (pequena, elegante, mínima).”  
— Kirrily Robert*
> 

[perlintro - a brief introduction and overview of Perl - Perldoc Browser](https://perldoc.perl.org/perlintro)

Vou inaugurar meu [Dev.to](http://Dev.to) falando mal de mim. Mas eu não seria eu mesma se não usasse um pouco a autodepreciação para, além de render umas boas risadas para mim mesma, alertar vocês de como  começar a estudar uma nova linguagem de programação indicando qual o começo certo, caso você decida embarcar no **Perl** comigo.

O Perl é uma linguagem de programação de uso geral, criada inicialmente pra manipulações de texto (e como ele cumpre muito bem esse papel viu), mas atualmente você pode criar até um universo com ela, se for bom. 

Também é uma linguagem antiga, foi criada em 1987. Por conta disso muitas pessoas me questionam “por que você escolheu Perl para trabalhar?” e o que mais costumo responder é: Eu não escolhi o Perl para trabalhar, foi ele quem me escolheu. Mas se fosse contar essa história ocuparia todo o post. Então vamos por a mão na massa.

<aside>
⚠️ Este post tem como objetivo definir orientação a objeto com Perl de maneira descontraída, por tanto ele leva em consideração que você, leitor, tenha conhecimento de lógica e linguagem e programação e saiba algumas definições de orientação a objeto.

</aside>

# Programação Orientada a Objeto

A Programação Orientada a Objetos é um dos quatro paradigmas da programação, juntamente com: imperativa, funcional e lógica. Ela se baseia na composição (atributos) e e interação (métodos) de objetos.
Perl é uma linguagem multiplataforma, e apenas a partir da sua versão 5 que ela passou a dar suporte para orientação a objeto. 

Para aplicar a orientação a objeto em Perl é muito simples. Veja a seguir:

## Classes

As classes são os pacotes dos arquivos que tem construtores que retornam objetos;

```perl
package model::Performances; # General Class
```

## Objetos

Os objetos em Perl são estruturas de dados que agrupam atributos e métodos das nossas classes.

## Construtor

A criação de um construtor no perl pode ser feita de maneira simples, usando uma de suas sub-rotinas para retornar a estrutura de dados abençoada (objeto) com todos os atributos de sua classe. O nome da sub-rotina não importa muito, mas por convenção e boas práticas de programação usamos o  new(). A seguir podemos ver um exemplo. 

```perl
package model::Performances; # General Class

sub new { # Constructor
    my $this = shift;
    my $class = ref ($this) || $this;
    # Attributes in classes
    my $self = {
        name => shift,
        audience => shift,
        type_play => shift,
    };

    return bless $self, $class;
}
```

## Métodos

O método simplesmente é uma sub-rotina regular dentro de uma classe.

```perl
sub amount_for { # Method
    my $self = shift; 
    return ($self->audience * 1000) / $self->type_play;
}
```

<aside>
👋🏻 Então pessoal, esses foram os conceitos mais básicos de orientação a objeto no perl. Continuem de olho que logo mais farei publicações sobre Polimorfismo, Herança e Encapsulamento e outras aplicações voltadas a essa linguagem de programação tão abrangente. Até a próxima.

</aside>