Oi Aureliano, Quando você define um atributo como required no Moose, você precisa passa-lo pelo construtor do seu objeto (new()).
No caso, seu código ficaria assim: [...] my $a = Vigenere->new( key => 'cinco', word => 'teste' ); say "Resultado: " . $a->encode(); 2013/11/10 Aureliano Guedes <guedes_1...@hotmail.com> > #!usr/env/bin perl > > use feature 'say'; > use common::sense; > use Vigenere; > > my $a = Vigenere->new(); > $a->key('cinco'); > $a->word('teste'); > > > say "Resultado: " . $a->encode(); > > ------------------------------ > From: tiago.pecze...@gmail.com > Date: Sun, 10 Nov 2013 22:42:46 -0200 > > To: rio-pm@pm.org > Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère > > mostra o codigo > > > 2013/11/10 Aureliano Guedes <guedes_1...@hotmail.com> > > Certo, mas eu estou preenchendo os atributos, a não ser que eu esteja > preenchendo de forma errada. > > ------------------------------ > From: tiago.pecze...@gmail.com > Date: Sun, 10 Nov 2013 22:22:14 -0200 > > To: rio-pm@pm.org > Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère > > sim pq este erro vem do fato que este atributo é requerido > > se vc quer dar uma mensagem mais bonitinha pro usuario, valide os imputs > no seu script antes de instanciar a classe. assim vc separa as coisas :) > > > 2013/11/10 Aureliano Guedes <guedes_1...@hotmail.com> > > Bom, usei o Moose como recomendou, mais pratico. > Quanto ao if, realmente foi falta de atenção, deveria ser um && no lugar > da virgula. > > Mas o erro que retorna é > Attribute (key) is required at C:/Perl/site/lib/Moose/Meta/Attribute.pm > line 519 > > Por algum motivo, é como se não fosse atribuido valor algum a key. > > Quanto ao metodo BUILD é que como ja tinha o codigo quase pronto fiquei > com preguissa de usar para validar, mas vou mudar para que word e key > tenham o mesmo tamanho sempre. > > > > ------------------------------ > From: tiago.pecze...@gmail.com > Date: Sun, 10 Nov 2013 21:00:04 -0200 > To: rio-pm@pm.org > > Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère > > Aureliano > > com Moose vc pode marcar um atributo como required. assim se alguem > esquecer ele na hora de inicializar a classe haverá uma mensagem de erro. > > has 'word' =>( > is => 'rw', > isa => 'Str', > required => 1, > ); > > melhor do que utilizar 'default' para validação. eu uso MUITO o default > mas justamente para inicializar o que eu preciso. > > alias se vc precisa validar o tamanho da chave e do texto, vc poderia > utilizar BUILD para isso. > > http://search.cpan.org/dist/Moose/lib/Moose/Manual/Construction.pod > > agora o que vc quer dizer com isso? > > if (isalpha($word[$a]), isalpha($key[$a])){ > > o que é um if com virgula? > > > 2013/11/10 Aureliano Guedes <guedes_1...@hotmail.com> > > Bom, fiz as mudanças aconselhadas e mais outras, > ainda transformei em uma classe. > > Vigenere.pm-> http://pastebin.com/aL4brPZx > Script teste -> http://pastebin.com/nbuqPqUr > > Ou-> https://www.dropbox.com/sh/4diypsz4y2puvxq/t0HuRZLvZW/Vigenere_Perl > > Por algum motivo tem alguma coisa dando errado com o Moose, ainda não > identifiquei, alguém ai sabe o que poderia ser?? > ------------------------------ > From: n...@fastmail.fm > To: rio-pm@pm.org > Date: Sun, 10 Nov 2013 04:16:56 -0200 > Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère > > > > > > On Sun, Nov 10, 2013, at 01:13 AM, Tiago Peczenyj wrote: > > 3- use map :) > > ao inves de > > my @b = split (//, $c); > for (my $i = 0; $i < @b; $i++){ > $b[$i] = ord $b[$i]; > } > > podes fazer > > return map { ord } split //, $c; > > > quer enxugar mais uma gota? faz > > map ord, split //, $c; > > :) > > -- > Nuba R. Princigalli n...@pauleira.com http://pauleira.com @nprincigalli > Discipline is not an end in itself, just a means to an end. - King Crimson > > > _______________________________________________ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net
_______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm