Perl OO & Atributos com Class::Accessor
Publicado por Daniel Vinciguerra (última atualização em 25/04/2016)
[ Hits: 5.346 ]
Homepage: http://bivee.com.br
Download class-accessors.pl (versão 2)
O intuito deste script foi mostrar como pode ser fácil criar classes com atributos e accessors através do Class::Accessor.
OBSERVAÇÂO:
Este script depende do módulo Class::Accessor... para instalar o mesmo segue o comando:
$ sudo perl -MCPAN -e "install Class::Accessor"
PERL DOC Class::Accessor:
http://search.cpan.org/~kasei/Class-Accessor-0.34/lib/Class/Accessor.pm
Versão 2 - Enviado por Daniel Vinciguerra em 03/04/2016
Changelog: Accessors em Perl são equivalentes aos métodos getters e setters do Java e do .Net e são utilizados para fazer o encapsulamento dos atributos da nossa classe.
Eles também permitem que utilizemos uma interface mais "amigável" na hora de acessar os atributos:
Ex.:
Acesso Direto
GET: $self->{nome}
SET: $self->{idade} = 12
Usando Accessor
GET: $self->nome() ou $self->nome
SET: $self->idade(12)
CHANGES:
- Tradução do script
- Melhoria nos comentários.
- "Modernização" da sintaxe
PRÉ-REQUISITOS
- perl 5.10 ou superior (para utilizar o say)
REFERÊNCIAS
https://metacpan.org/pod/Class::Accessor
EXECUTANDO
$ perl class-accessors.pl
#!/usr/bin/perl -w # (c) 2011 Bivee. All rights reserveds. # author dvicniguerra < dan.vinciguerra at gmail.com > # # This script is distributed under Perl Itself License # declaring Pessoa class package Pessoa; # This module provide a constructor and att declarations # like Moose this way. use Class::Accessor "antlers"; # nome attribute has nome => ( is => "rw", isa => "Str" ); # email attribute has email => ( is => "rw", isa => "Str" ); # idade attribute has idade => ( is => "rw", isa => "Num" ); # meet method show some info about Pessoa object sub meeting_you { my $self = shift; print "Hi " . $self->nome . ", you have " . $self->idade . " years old and your email is " . $self->email; } # now we can call the class package main; # getting a new pessoa object my $p = Pessoa->new({ nome => 'Daniel Vinciguerra', idade => 23, email => 'daniel.vinciguerra@test.com' }); # calling meeting_you method from Pessoa object $p->meeting_you;
Usando sub/method signatures no Perl
Calculo de valor futuro - regrassão linear
Separando seu código em módulos no Perl
Exemplo de uso do módulo Term::InKey
Conversão de textos UTF-8 para ISO8859-1
Nenhum comentário foi encontrado.
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Criando um Pen Drive Bootável no Linux
Instalando Discord no Fedora 40
Instalando Discord no Ubuntu 24.04 LTS
Como instalar o XFCE4-terminal na sua distribuição Linux e integrá-lo ao sistema
Como instalar o Tilix Terminal no Gnome e usá-lo como menu drop-down ao estilo Quake
Alguém do ramo de educação por aqui? [RESOLVIDO] (8)
problemas com artefatos na instalação (20)
Google chrome e opera fechando (1)
Como instalar/atua... o Ubuntu sem formatar o HD? [RESOLVIDO] (3)