[Rio-pm] [Fun - passa tempo] Cifra de Vigenère
Aureliano Guedes
guedes_1000 em hotmail.com
Domingo Novembro 10 16:02:23 PST 2013
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.peczenyj em gmail.com
Date: Sun, 10 Nov 2013 21:00:04 -0200
To: rio-pm em 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_1000 em 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: nuba em fastmail.fm
To: rio-pm em 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 nuba em 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 em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
Rio-pm em 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 em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20131111/05c46138/attachment-0001.html>
Mais detalhes sobre a lista de discussão Rio-pm