Perl OO & Atributos com Class::Accessor
Publicado por Daniel Vinciguerra (última atualização em 25/04/2016)
[ Hits: 5.671 ]
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;
Separando seu código em módulos no Perl
Exemplo de uso do módulo Term::InKey
Usando sub/method signatures no Perl
Calculo de valor futuro - regrassão linear
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (6)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









