Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
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
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
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
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
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
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
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
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
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
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
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
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
#!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
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
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
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
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
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
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
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
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
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
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