Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
Bom, fiz as mudanças aconselhadas e mais outras,ainda transformei em uma classe. Vigenere.pm- http://pastebin.com/aL4brPZxScript 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
Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
#!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
Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
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
Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
Ah Tente no construtor. -new( key = ... Em 10/11/2013 23:01, Aureliano Guedes guedes_1...@hotmail.com escreveu: #!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 ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
divertido agora saca so como vc pode fazer diferente 1 ao inves de print PALAVRA: . $ARGV[0] . \n; podes fazer say PALAVRA: $ARGV[0]; 2- usa funcao isalpha pode ser simplificada (return 1 if ... ) sub isalpha { chr($_[0]) =~ /[a-zA-Z]/ } 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; agora é importante vc fazer um script de teste, onde vc chama as funcoes de encode e decode na mão e testa os valores. assim vc pode refatorar o script sem medo de errar alguma coisa. 2013/11/10 Aureliano Guedes guedes_1...@hotmail.com Fiz um algoritimo para encodar e decodar alguma coisa codificada de acordo com a Cifra de Vigenère. Cheio de POG's mas a titulo só de distração. http://pastebin.com/ZzT9zZGb Exemplo: Texto:ATACARBASESULChave: LIMAOLIMAOLIMTexto cifrado:LBMCOCJMSSDCX ___ 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