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

2013-11-11 Por tôpico Tiago Peczenyj
nao pensa em reduzir tanto. tem que ficar legivel


2013/11/11 Aureliano Guedes 

> Tava tentando achar um jeito de remover esse laço 'for'.
> E talvez reduzir para 1 linha de código.
> se ja reduziu de 30 linhas para 5, talvez seja possível.
>
> --
> From: tiago.pecze...@gmail.com
> Date: Mon, 11 Nov 2013 20:10:26 -0200
>
> To: rio-pm@pm.org
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> my @word = $ARGV[0]->uc->split('')->map( sub{ $_->ord} );
>
> ou
>
> my @word map { ord $_ } split '', uc $ARGV[0];
>
> vc decide :)
>
>
>
> 2013/11/11 Aureliano Guedes 
>
> Tiago, o máximo que consegui ate agora usando o autobox::Core foi
>
> #!usr/bin/env perl
> use common::sense;
> use autobox::Core;
>
> my @word;
> my @key;
> @word->push($_->ord) foreach $ARGV[0]->uc->split('');
> @key->push($_->ord) foreach $ARGV[1]->uc->split('');
> for (my $a = 0; $a <= $#key; $a++){
>  ((($word[$_] + $key[$_])%26)+65)->chr->print if ($ARGV[2] eq 'e');
> ((($word[$_] - $key[$_])%26)+65)->chr->print if ($ARGV[2] eq 'd');}
>
> --
> From: guedes_1...@hotmail.com
> To: rio-pm@pm.org
> Date: Mon, 11 Nov 2013 17:49:23 +
>
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> Achei esse módulo muito interessante mesmo, mas ainda estou conhecendo o
> território. Vou tentar aplicar ele.
>
> --
> From: tiago.pecze...@gmail.com
> Date: Mon, 11 Nov 2013 15:32:21 -0200
> To: rio-pm@pm.org
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> só falta vc usar o autobox::Core
>
>
> 2013/11/11 Aureliano Guedes 
>
> Corrigi, mudando o código todo
> http://pastebin.com/dqzZXXzM
>
> Agora vou tentar em só uma linha. LOL
>
> --
> From: guedes_1...@hotmail.com
> To: rio-pm@pm.org
> Date: Mon, 11 Nov 2013 14:01:16 +
>
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> Eu não entendi quanto a ler o parâmetro a partir do atributo e receber
> dois parâmetros,
>
> mas eu fiz um teste.
>
> Eu criei um método BUILD da seguinte forma
>
> sub BUILD{
> my $self = shift;
> my (@w, @k);
> @w = split (//, $self->word);
>  @k = split (//, $self->key);
> croak "'key' and 'word' are diferent lenght\n"
> if($#w != $#k);
>  foreach (@w and @k){
> croak "'key' and 'word' need to be letter\n"
> unless($w[$_] =~ /[a-zA-Z]/ || $k[$_] =~ /[a-zA-Z]/);
>  }
> }
>
> Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me
> aconselhou fazer isso no BUILD),
> aproveitei e retirei a rotina 'isalpha' que conferia se o caractere eram
> letras e coloquei para conferir isso no BUILD também
> (não sei se é muita POG).
>
> sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22
> Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
>
> Antes de fazer isso o erro que retornava apontava para a linha do
> 'isalpha', agora está apontando para a linha do 'toupper', que é uma função
> que traduz o hex ASCII para caracter, passa para upcase e retorna como hex
> denovo (logo 97 vira 65, assim por diante).
>
> sub toupper{ord(uc chr $_[0])}  #<- line 25
> Use of uninitialized value $_[0] in chr at Vigenere.pm line 25.
>
> Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o
> problema é eu tentar tratar usando essa string "$_[0]",
> não sei se estou falando besteira, mas como o script teste.pl herda a
> classe, parece que a rotina tenta receber a string do script e não do
> módulo.
>
> --
> From: tiago.pecze...@gmail.com
> Date: Mon, 11 Nov 2013 09:57:14 -0200
> To: rio-pm@pm.org
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> vejamos
>
> anteriormente as suas funcoes recebiam 2 parametros
>
> agora elas leem os parametros a partir dos atributos e eu acho isso...
> esquisito.
>
> veja só, não ha muita razão para armazenar estes dois atributos nessa
> classe. vc tem que pensar em termos de Objetos.
>
> vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia
> armazenar a chave como atributo e assim reusar o objeto para encodar um
> texto a ser recebido.
>
> AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo
> aqui (ai envolve explicação sobre list context e atribuição):
>
> my (@word, @key) = (tochar($self->word), tochar($self->key));
>
> ten

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

2013-11-11 Por tôpico Aureliano Guedes
Tava tentando achar um jeito de remover esse laço 'for'.E talvez reduzir para 1 
linha de código.se ja reduziu de 30 linhas para 5, talvez seja possível.

From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 20:10:26 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

my @word = $ARGV[0]->uc->split('')->map( sub{ $_->ord} );



ou
my @word map { ord $_ } split '', uc $ARGV[0];


vc decide :)




2013/11/11 Aureliano Guedes 





Tiago, o máximo que consegui ate agora usando o autobox::Core foi
#!usr/bin/env perluse common::sense;use autobox::Core;
my @word;

my @key;@word->push($_->ord) foreach 
$ARGV[0]->uc->split('');@key->push($_->ord) foreach $ARGV[1]->uc->split('');for 
(my $a = 0; $a <= $#key; $a++){

((($word[$_] + $key[$_])%26)+65)->chr->print if ($ARGV[2] eq 'e');  
((($word[$_] - $key[$_])%26)+65)->chr->print if ($ARGV[2] eq 'd');}


From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 17:49:23 +


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




Achei esse módulo muito interessante mesmo, mas ainda estou conhecendo o 
território. Vou tentar aplicar ele.

From: tiago.pecze...@gmail.com


Date: Mon, 11 Nov 2013 15:32:21 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

só falta vc usar o autobox::Core



2013/11/11 Aureliano Guedes 





Corrigi, mudando o código todohttp://pastebin.com/dqzZXXzM
Agora vou tentar em só uma linha. LOL



From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 14:01:16 +




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




Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma




sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);



@k = split (//, $self->key);croak "'key' and 'word' are diferent 
lenght\n"  if($#w != $#k);



foreach (@w and @k){croak "'key' and 'word' need to be 
letter\n"unless($w[$_] =~ /[a-zA-Z]/ || $k[$_] =~ 
/[a-zA-Z]/);



}   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),



aproveitei e retirei a rotina 'isalpha' que conferia se o caractere eram letras 
e coloquei para conferir isso no BUILD também (não sei se é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22



Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).




sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.




Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",



não sei se estou falando besteira, mas como o script teste.pl herda a classe, 
parece que a rotina tenta receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com




Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos




anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.






AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));













tente fazer












my @key  = tochar($self->key);





my @word = tochar($self->word);








2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro





Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj






Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??







From: bruno.b...@gma

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

2013-11-11 Por tôpico Tiago Peczenyj
my @word = $ARGV[0]->uc->split('')->map( sub{ $_->ord} );

ou

my @word map { ord $_ } split '', uc $ARGV[0];

vc decide :)



2013/11/11 Aureliano Guedes 

> Tiago, o máximo que consegui ate agora usando o autobox::Core foi
>
> #!usr/bin/env perl
> use common::sense;
> use autobox::Core;
>
> my @word;
> my @key;
> @word->push($_->ord) foreach $ARGV[0]->uc->split('');
> @key->push($_->ord) foreach $ARGV[1]->uc->split('');
> for (my $a = 0; $a <= $#key; $a++){
>  ((($word[$_] + $key[$_])%26)+65)->chr->print if ($ARGV[2] eq 'e');
> ((($word[$_] - $key[$_])%26)+65)->chr->print if ($ARGV[2] eq 'd');}
>
> ----------
> From: guedes_1...@hotmail.com
> To: rio-pm@pm.org
> Date: Mon, 11 Nov 2013 17:49:23 +
>
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> Achei esse módulo muito interessante mesmo, mas ainda estou conhecendo o
> território. Vou tentar aplicar ele.
>
> --
> From: tiago.pecze...@gmail.com
> Date: Mon, 11 Nov 2013 15:32:21 -0200
> To: rio-pm@pm.org
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> só falta vc usar o autobox::Core
>
>
> 2013/11/11 Aureliano Guedes 
>
> Corrigi, mudando o código todo
> http://pastebin.com/dqzZXXzM
>
> Agora vou tentar em só uma linha. LOL
>
> --
> From: guedes_1...@hotmail.com
> To: rio-pm@pm.org
> Date: Mon, 11 Nov 2013 14:01:16 +
>
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> Eu não entendi quanto a ler o parâmetro a partir do atributo e receber
> dois parâmetros,
>
> mas eu fiz um teste.
>
> Eu criei um método BUILD da seguinte forma
>
> sub BUILD{
> my $self = shift;
> my (@w, @k);
> @w = split (//, $self->word);
>  @k = split (//, $self->key);
> croak "'key' and 'word' are diferent lenght\n"
> if($#w != $#k);
>  foreach (@w and @k){
> croak "'key' and 'word' need to be letter\n"
> unless($w[$_] =~ /[a-zA-Z]/ || $k[$_] =~ /[a-zA-Z]/);
>  }
> }
>
> Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me
> aconselhou fazer isso no BUILD),
> aproveitei e retirei a rotina 'isalpha' que conferia se o caractere eram
> letras e coloquei para conferir isso no BUILD também
> (não sei se é muita POG).
>
> sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22
> Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
>
> Antes de fazer isso o erro que retornava apontava para a linha do
> 'isalpha', agora está apontando para a linha do 'toupper', que é uma função
> que traduz o hex ASCII para caracter, passa para upcase e retorna como hex
> denovo (logo 97 vira 65, assim por diante).
>
> sub toupper{ord(uc chr $_[0])}  #<- line 25
> Use of uninitialized value $_[0] in chr at Vigenere.pm line 25.
>
> Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o
> problema é eu tentar tratar usando essa string "$_[0]",
> não sei se estou falando besteira, mas como o script teste.pl herda a
> classe, parece que a rotina tenta receber a string do script e não do
> módulo.
>
> --
> From: tiago.pecze...@gmail.com
> Date: Mon, 11 Nov 2013 09:57:14 -0200
> To: rio-pm@pm.org
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> vejamos
>
> anteriormente as suas funcoes recebiam 2 parametros
>
> agora elas leem os parametros a partir dos atributos e eu acho isso...
> esquisito.
>
> veja só, não ha muita razão para armazenar estes dois atributos nessa
> classe. vc tem que pensar em termos de Objetos.
>
> vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia
> armazenar a chave como atributo e assim reusar o objeto para encodar um
> texto a ser recebido.
>
> AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo
> aqui (ai envolve explicação sobre list context e atribuição):
>
> my (@word, @key) = (tochar($self->word), tochar($self->key));
>
> tente fazer
>
> my @key  = tochar($self->key);
> my @word = tochar($self->word);
>
>
>
> 2013/11/11 Aureliano Guedes 
>
> Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava
> em Perl.
>
> Tem um outro probleminha ocorrendo.
>
> Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o
> seguinte erro
> Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
>
> A linha 22 é
> sub isalpha{chr ($_[0]) =~ /[a-zA-Z]/}
>
>

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

2013-11-11 Por tôpico Aureliano Guedes
Tiago, o máximo que consegui ate agora usando o autobox::Core foi
#!usr/bin/env perluse common::sense;use autobox::Core;
my @word;my @key;@word->push($_->ord) foreach 
$ARGV[0]->uc->split('');@key->push($_->ord) foreach $ARGV[1]->uc->split('');for 
(my $a = 0; $a <= $#key; $a++){   ((($word[$_] + $key[$_])%26)+65)->chr->print 
if ($ARGV[2] eq 'e');  ((($word[$_] - $key[$_])%26)+65)->chr->print if 
($ARGV[2] eq 'd');}
From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 17:49:23 +
Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère




Achei esse módulo muito interessante mesmo, mas ainda estou conhecendo o 
território. Vou tentar aplicar ele.

From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 15:32:21 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

só falta vc usar o autobox::Core

2013/11/11 Aureliano Guedes 





Corrigi, mudando o código todohttp://pastebin.com/dqzZXXzM
Agora vou tentar em só uma linha. LOL



From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 14:01:16 +


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




Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma


sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);

@k = split (//, $self->key);croak "'key' and 'word' are diferent 
lenght\n"  if($#w != $#k);

foreach (@w and @k){croak "'key' and 'word' need to be 
letter\n"unless($w[$_] =~ /[a-zA-Z]/ || $k[$_] =~ 
/[a-zA-Z]/);

}   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),

aproveitei e retirei a rotina 'isalpha' que conferia se o caractere eram letras 
e coloquei para conferir isso no BUILD também (não sei se é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22

Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).


sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.


Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",

não sei se estou falando besteira, mas como o script teste.pl herda a classe, 
parece que a rotina tenta receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com


Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos


anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.




AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));









tente fazer








my @key  = tochar($self->key);



my @word = tochar($self->word);






2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro



Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj




Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??





From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org




Subject: 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 









#!usr/env/bin perl
use feature 'say';use common::sense;use Vigenere;
my $a = V

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

2013-11-11 Por tôpico Aureliano Guedes
Achei esse módulo muito interessante mesmo, mas ainda estou conhecendo o 
território. Vou tentar aplicar ele.

From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 15:32:21 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

só falta vc usar o autobox::Core

2013/11/11 Aureliano Guedes 





Corrigi, mudando o código todohttp://pastebin.com/dqzZXXzM
Agora vou tentar em só uma linha. LOL



From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 14:01:16 +


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




Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma


sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);

@k = split (//, $self->key);croak "'key' and 'word' are diferent 
lenght\n"  if($#w != $#k);

foreach (@w and @k){croak "'key' and 'word' need to be 
letter\n"unless($w[$_] =~ /[a-zA-Z]/ || $k[$_] =~ 
/[a-zA-Z]/);

}   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),

aproveitei e retirei a rotina 'isalpha' que conferia se o caractere eram letras 
e coloquei para conferir isso no BUILD também (não sei se é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22

Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).


sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.


Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",

não sei se estou falando besteira, mas como o script teste.pl herda a classe, 
parece que a rotina tenta receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com


Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos


anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.




AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));









tente fazer








my @key  = tochar($self->key);



my @word = tochar($self->word);






2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro



Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj




Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??





From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org




Subject: 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 









#!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 





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 é

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

2013-11-11 Por tôpico Tiago Peczenyj
só falta vc usar o autobox::Core


2013/11/11 Aureliano Guedes 

> Corrigi, mudando o código todo
> http://pastebin.com/dqzZXXzM
>
> Agora vou tentar em só uma linha. LOL
>
> --
> From: guedes_1...@hotmail.com
> To: rio-pm@pm.org
> Date: Mon, 11 Nov 2013 14:01:16 +0000
>
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> Eu não entendi quanto a ler o parâmetro a partir do atributo e receber
> dois parâmetros,
>
> mas eu fiz um teste.
>
> Eu criei um método BUILD da seguinte forma
>
> sub BUILD{
> my $self = shift;
> my (@w, @k);
> @w = split (//, $self->word);
>  @k = split (//, $self->key);
> croak "'key' and 'word' are diferent lenght\n"
> if($#w != $#k);
>  foreach (@w and @k){
> croak "'key' and 'word' need to be letter\n"
> unless($w[$_] =~ /[a-zA-Z]/ || $k[$_] =~ /[a-zA-Z]/);
>  }
> }
>
> Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me
> aconselhou fazer isso no BUILD),
> aproveitei e retirei a rotina 'isalpha' que conferia se o caractere eram
> letras e coloquei para conferir isso no BUILD também
> (não sei se é muita POG).
>
> sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22
> Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
>
> Antes de fazer isso o erro que retornava apontava para a linha do
> 'isalpha', agora está apontando para a linha do 'toupper', que é uma função
> que traduz o hex ASCII para caracter, passa para upcase e retorna como hex
> denovo (logo 97 vira 65, assim por diante).
>
> sub toupper{ord(uc chr $_[0])}  #<- line 25
> Use of uninitialized value $_[0] in chr at Vigenere.pm line 25.
>
> Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o
> problema é eu tentar tratar usando essa string "$_[0]",
> não sei se estou falando besteira, mas como o script teste.pl herda a
> classe, parece que a rotina tenta receber a string do script e não do
> módulo.
>
> --
> From: tiago.pecze...@gmail.com
> Date: Mon, 11 Nov 2013 09:57:14 -0200
> To: rio-pm@pm.org
> Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
>
> vejamos
>
> anteriormente as suas funcoes recebiam 2 parametros
>
> agora elas leem os parametros a partir dos atributos e eu acho isso...
> esquisito.
>
> veja só, não ha muita razão para armazenar estes dois atributos nessa
> classe. vc tem que pensar em termos de Objetos.
>
> vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia
> armazenar a chave como atributo e assim reusar o objeto para encodar um
> texto a ser recebido.
>
> AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo
> aqui (ai envolve explicação sobre list context e atribuição):
>
> my (@word, @key) = (tochar($self->word), tochar($self->key));
>
> tente fazer
>
> my @key  = tochar($self->key);
> my @word = tochar($self->word);
>
>
>
> 2013/11/11 Aureliano Guedes 
>
> Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava
> em Perl.
>
> Tem um outro probleminha ocorrendo.
>
> Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o
> seguinte erro
> Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
>
> A linha 22 é
> sub isalpha{chr ($_[0]) =~ /[a-zA-Z]/}
>
> Mas, eu criei esse package a partir desse script aqui ->
> http://pastebin.com/svEkjFJj
>
> Que tem a mesma rotina escrita da mesma forma.
>
> Por algum motivo funciona em um e em outro não.
>
> Por que será??
>
> É o $_[0]??
>
> --
> From: bruno.b...@gmail.com
> Date: Sun, 10 Nov 2013 23:39:42 -0200
>
> To: rio-pm@pm.org
> Subject: 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 
>
> #!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: R

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

2013-11-11 Por tôpico Aureliano Guedes
Corrigi, mudando o código todohttp://pastebin.com/dqzZXXzM
Agora vou tentar em só uma linha. LOL

From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 14:01:16 +
Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère




Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma
sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);   @k = split (//, $self->key);croak "'key' and 'word' are 
diferent lenght\n"  if($#w != $#k); foreach (@w and @k){
croak "'key' and 'word' need to be letter\n"unless($w[$_] 
=~ /[a-zA-Z]/ || $k[$_] =~ /[a-zA-Z]/);   }   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),aproveitei e retirei a rotina 'isalpha' que conferia se o 
caractere eram letras e coloquei para conferir isso no BUILD também (não sei se 
é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22Use of uninitialized value 
$_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).
sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.
Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",não sei se estou falando 
besteira, mas como o script teste.pl herda a classe, parece que a rotina tenta 
receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos
anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.


AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));





tente fazer




my @key  = tochar($self->key);

my @word = tochar($self->word);




2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro

Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj


Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??



From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org


Subject: 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 







#!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 





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 











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 requ

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

2013-11-11 Por tôpico Aureliano Guedes
Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma
sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);   @k = split (//, $self->key);croak "'key' and 'word' are 
diferent lenght\n"  if($#w != $#k); foreach (@w and @k){
croak "'key' and 'word' need to be letter\n"unless($w[$_] 
=~ /[a-zA-Z]/ || $k[$_] =~ /[a-zA-Z]/);   }   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),aproveitei e retirei a rotina 'isalpha' que conferia se o 
caractere eram letras e coloquei para conferir isso no BUILD também (não sei se 
é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22Use of uninitialized value 
$_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).
sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.
Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",não sei se estou falando 
besteira, mas como o script teste.pl herda a classe, parece que a rotina tenta 
receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos
anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.


AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));





tente fazer




my @key  = tochar($self->key);

my @word = tochar($self->word);




2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro

Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj


Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??



From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org


Subject: 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 







#!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 





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 











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 pa

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

2013-11-11 Por tôpico Tiago Peczenyj
vejamos

anteriormente as suas funcoes recebiam 2 parametros

agora elas leem os parametros a partir dos atributos e eu acho isso...
esquisito.

veja só, não ha muita razão para armazenar estes dois atributos nessa
classe. vc tem que pensar em termos de Objetos.

vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia
armazenar a chave como atributo e assim reusar o objeto para encodar um
texto a ser recebido.

AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui
(ai envolve explicação sobre list context e atribuição):

my (@word, @key) = (tochar($self->word), tochar($self->key));

tente fazer

my @key  = tochar($self->key);
my @word = tochar($self->word);



2013/11/11 Aureliano Guedes 

> Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava
> em Perl.
>
> Tem um outro probleminha ocorrendo.
>
> Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o
> seguinte erro
> Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
>
> A linha 22 é
> sub isalpha{chr ($_[0]) =~ /[a-zA-Z]/}
>
> Mas, eu criei esse package a partir desse script aqui ->
> http://pastebin.com/svEkjFJj
>
> Que tem a mesma rotina escrita da mesma forma.
>
> Por algum motivo funciona em um e em outro não.
>
> Por que será??
>
> É o $_[0]??
>
> --
> From: bruno.b...@gmail.com
> Date: Sun, 10 Nov 2013 23:39:42 -0200
>
> To: rio-pm@pm.org
> Subject: 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 
>
> #!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 
>
> 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 
>
> 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 
>
> Bom, fiz as mudanças aconselhadas e mais outras,
> ainda transformei em uma classe.
>
> Vigenere.pm-> http://pastebin.com/aL4brPZx
&

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

2013-11-10 Por tôpico Aureliano Guedes
Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte 
erroUse of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj
Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??

From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org
Subject: 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 





#!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 





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 









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 











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  
  

__

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"  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 
>
> 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 
>
> 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 
>
> 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
>
> _

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 

> #!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 
>
> 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 
>
> 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 
>
> 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
>
> _

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 





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 







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 









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
mostra o codigo


2013/11/10 Aureliano Guedes 

> 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 
>
> 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 
>
> 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

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

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





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 







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

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

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

> 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 
>
> 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

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

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





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

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

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

> 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

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-09 Por tôpico Nuba Princigalli






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

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

2013-11-09 Por tôpico Tiago Peczenyj
Alias de uma olhada

https://metacpan.org/source/PACMAN/Acme-Lelek-1.003/lib/Acme/Lelek.pm

eu fiz este modulo pra brincar com o autobox::Core.


2013/11/10 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 
>
>>  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
>



-- 
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

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 

> 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

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

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