Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère

2013-11-10 Por tôpico Aureliano Guedes
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

2013-11-10 Por tôpico Aureliano Guedes
#!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

2013-11-10 Por tôpico Bruno Buss
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

2013-11-10 Por tôpico Tiago Peczenyj
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

2013-11-09 Por tôpico Tiago Peczenyj
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