DEV Community

Victoria Ricarte Bispo Beserra
Victoria Ricarte Bispo Beserra

Posted on • Updated on • Originally published at unleashed-leo-7af.notion.site

Perl Orientado a Objeto Part I


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

Perl Orientado a Objeto Part I

Perl Orientado a Objeto Part II

Perl Orientado a Objeto Part III

Moo - Orientação de objeto minimalista

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

Vou inaugurar meu 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.

⚠️ 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.

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;

package model::Performances; # General Class
Enter fullscreen mode Exit fullscreen mode

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.

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;
}
Enter fullscreen mode Exit fullscreen mode

Métodos

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

sub amount_for { # Method
    my $self = shift; 
    return ($self->audience * 1000) / $self->type_play;
}
Enter fullscreen mode Exit fullscreen mode

👋🏻 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.

Discussion (6)

Collapse
matthewpersico profile image
Matthew O. Persico

Nice start. I do not speak Portuguese, so I used this English translation: https://dev-to.translate.goog/victoriabispo/perl-orientado-a-objeto-1bd1?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp

Are you planning on covering the planned latest iteration of OO in Perl at some point?

Collapse
matthewpersico profile image
Matthew O. Persico

Bom começo! Eu não falo português então usei essa tradução do Google: https://dev-to.translate.goog/victoriabispo/perl-orientado-a-objeto-1bd1?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp

Você está planejando cobrir a última iteração planejada de OO em Perl em algum momento?

Collapse
victoriabispo profile image
Victoria Ricarte Bispo Beserra Author

Hi Matthew! I will make the articles as I review concepts I already know and new concepts. Thanks for the contribution, I'm already excited to meet Corinna.

Collapse
matthewpersico profile image
Matthew O. Persico • Edited on

Suggestion - as you add articles, go back and update prior ones with next and previous article links. That will make reading them as a series much more convenient (and likely).
Thank you.

Sugestão - à medida que você adiciona artigos, volte e atualize os anteriores com os links do artigo seguinte e anterior. Isso tornará a leitura deles como uma série muito mais conveniente (e provável).
Obrigada. (Google Translate)

Collapse
rohlacanna profile image
Rômulo Silva

Ótima leitura! Recomendo.

Collapse
bendevoficial profile image
Bendev Junior

Muito bom ! Parabéns 🎉