Re: [Rio-pm] Comparação de arquivos

2012-11-25 Thread Aureliano Guedes

> "Três coisas são infinitas: o universo, a paciência do Breno e a
> estupidez humana. Mas, no que respeita ao universo, ainda não adquiri
> a certeza absoluta."

Albert Einstein não conhecia essa variável na época.

> From: bla...@gmail.com
> Date: Sat, 24 Nov 2012 22:03:50 -0200
> To: rio-pm@pm.org
> Subject: Re: [Rio-pm] Comparação de arquivos
> 
> "Três coisas são infinitas: o universo, a paciência do Breno e a
> estupidez humana. Mas, no que respeita ao universo, ainda não adquiri
> a certeza absoluta."
> 
> 2012/11/24 Ole Peter Smith :
> >
> > On Nov 24, 2012 4:52 PM, "Aureliano Guedes"  wrote:
> >>
> >> Breno, que ser meu orientador... hahaha...
> >
> > se eu era reitor universitario, eu daria o grau de dr honoratis para o este
> > nosso breno, pela sua competencia, vastoconhecimento e infinita paciencia de
> > enseminar conhecimentos
> >
> > 0le
> >
> >
> >>
> >> Enfim, ficou assim http://pastebin.com/zrpLGwQs
> >>
> >> Ha algo que você mudaria???
> >>
> >> > Date: Sat, 24 Nov 2012 09:45:41 -0200
> >>
> >> > From: br...@rio.pm.org
> >> > To: rio-pm@pm.org
> >> > Subject: Re: [Rio-pm] Comparação de arquivos
> >> >
> >> > 2012/11/24 Aureliano Guedes :
> >> > >
> >> > > Se não for ser muito chato, como faço para seguir a forma abaixo:
> >> > >
> >> > >
> >> > >> 2) trocar de abordagem, fazendo seu parser ler linha a linha (sem
> >> > >> modificar $/) e ir acumulando as linhas até encontrar um símbolo que
> >> > >> indique nova entrada.
> >> > >
> >> > > seria algo do tipo:
> >> > >
> >> > > while (<$fh>){
> >> > > if(/primeira linha/){
> >> > > print $_;
> >> > > }
> >> > > elsif (/ultima linha/){
> >> > > #sair do loop
> >> > > }
> >> > > else {
> >> > > print $_
> >> > > }
> >> > > }
> >> > >
> >> >
> >> > Algo como (atenção, código não testado):
> >> >
> >> > ---8<---
> >> > my %dados = ();
> >> > my $mirna;
> >> > my $acumulador;
> >> >
> >> > while (my $linha = <$fh>) {
> >> > if ( $linha =~ m{tag magica (?\S+)} ) {
> >> > $dados{$mirna} = $acumulador if $mirna;
> >> > $mirna = $+{mirna};
> >> > $acumulador = q();
> >> > }
> >> > else {
> >> > $acumulador .= $linha;
> >> > }
> >> > }
> >> >
> >> > use DDP; p %dados;
> >> >
> >> > --->8---
> >> >
> >> > O que isso faz (ou deveria fazer: já mencionei que não testei?
> >> > Programar a essa hora da manhã não é meu forte, então favor
> >> > desconsiderar qualquer besteira):
> >> >
> >> > 1) le o arquivo linha por linha, atribuindo o valor de cada linha a
> >> > $linha (sem usar $_)
> >> > 2) sempre que encontrar a tag mágica que separa entradas (estou
> >> > assumindo que a tag indica um novo registro que pode ser chave do seu
> >> > hash de dados:
> >> > 2.1) se já estiver com um registro em memória ($mirna), bota os dados
> >> > acumulados ($acumulador) dentro do hash;
> >> > 2.2) atribui à $mirna o novo registro encontrado. Note que estou
> >> > usando grupos nomeados na regex, fazendo (?...) em vez de apenas
> >> > (...). Isso funciona a partir do 5.10.0 e me permite acessar os
> >> > valores agrupados na regex por nome dentro do hash %+. No caso,
> >> > acessei o grupo (?) fazendo $+{mirna};
> >> > 2.2) zera o acumulador.
> >> > 3) se não encontrar a tag mágica, vai acumulando os dados. Dentro
> >> > desse 'else' vc pode fazer coisas como "next if $linha =~ /.../" caso
> >> > não queira guardar alguma linha, por exemplo.
> >> > 4) Depois do while vc pode inspecionar %dados para saber se está tudo
> >> > ok.
> >> >
> >> >
> >> > Entendeu?
> >> >
> >> > []s
> >> >
> >> > -b
> >> > ___
> >> > Rio-pm mailing list
> >> > Rio-pm@pm.org
> >> > http://mail.pm.org/mailman/listinfo/rio-pm
> >>
> >> ___
> >> Rio-pm mailing list
> >> Rio-pm@pm.org
> >> http://mail.pm.org/mailman/listinfo/rio-pm
> >
> >
> > ___
> > Rio-pm mailing list
> > Rio-pm@pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> ___
> 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] Comparação de arquivos

2012-11-25 Thread Tiago Peczenyj
nem perl. senão ele saberia que o correto é

$E = m*c**2

2012/11/25 Aureliano Guedes 

>  > "Três coisas são infinitas: o universo, a paciência do Breno e a
> > estupidez humana. Mas, no que respeita ao universo, ainda não adquiri
> > a certeza absoluta."
>
> Albert Einstein não conhecia essa variável na época.
>
> > From: bla...@gmail.com
> > Date: Sat, 24 Nov 2012 22:03:50 -0200
>
> > To: rio-pm@pm.org
> > Subject: Re: [Rio-pm] Comparação de arquivos
> >
> > "Três coisas são infinitas: o universo, a paciência do Breno e a
> > estupidez humana. Mas, no que respeita ao universo, ainda não adquiri
> > a certeza absoluta."
> >
> > 2012/11/24 Ole Peter Smith :
> > >
> > > On Nov 24, 2012 4:52 PM, "Aureliano Guedes" 
> wrote:
> > >>
> > >> Breno, que ser meu orientador... hahaha...
> > >
> > > se eu era reitor universitario, eu daria o grau de dr honoratis para o
> este
> > > nosso breno, pela sua competencia, vastoconhecimento e infinita
> paciencia de
> > > enseminar conhecimentos
> > >
> > > 0le
> > >
> > >
> > >>
> > >> Enfim, ficou assim http://pastebin.com/zrpLGwQs
> > >>
> > >> Ha algo que você mudaria???
> > >>
> > >> > Date: Sat, 24 Nov 2012 09:45:41 -0200
> > >>
> > >> > From: br...@rio.pm.org
> > >> > To: rio-pm@pm.org
> > >> > Subject: Re: [Rio-pm] Comparação de arquivos
> > >> >
> > >> > 2012/11/24 Aureliano Guedes :
> > >> > >
> > >> > > Se não for ser muito chato, como faço para seguir a forma abaixo:
> > >> > >
> > >> > >
> > >> > >> 2) trocar de abordagem, fazendo seu parser ler linha a linha (sem
> > >> > >> modificar $/) e ir acumulando as linhas até encontrar um símbolo
> que
> > >> > >> indique nova entrada.
> > >> > >
> > >> > > seria algo do tipo:
> > >> > >
> > >> > > while (<$fh>){
> > >> > > if(/primeira linha/){
> > >> > > print $_;
> > >> > > }
> > >> > > elsif (/ultima linha/){
> > >> > > #sair do loop
> > >> > > }
> > >> > > else {
> > >> > > print $_
> > >> > > }
> > >> > > }
> > >> > >
> > >> >
> > >> > Algo como (atenção, código não testado):
> > >> >
> > >> > ---8<---
> > >> > my %dados = ();
> > >> > my $mirna;
> > >> > my $acumulador;
> > >> >
> > >> > while (my $linha = <$fh>) {
> > >> > if ( $linha =~ m{tag magica (?\S+)} ) {
> > >> > $dados{$mirna} = $acumulador if $mirna;
> > >> > $mirna = $+{mirna};
> > >> > $acumulador = q();
> > >> > }
> > >> > else {
> > >> > $acumulador .= $linha;
> > >> > }
> > >> > }
> > >> >
> > >> > use DDP; p %dados;
> > >> >
> > >> > --->8---
> > >> >
> > >> > O que isso faz (ou deveria fazer: já mencionei que não testei?
> > >> > Programar a essa hora da manhã não é meu forte, então favor
> > >> > desconsiderar qualquer besteira):
> > >> >
> > >> > 1) le o arquivo linha por linha, atribuindo o valor de cada linha a
> > >> > $linha (sem usar $_)
> > >> > 2) sempre que encontrar a tag mágica que separa entradas (estou
> > >> > assumindo que a tag indica um novo registro que pode ser chave do
> seu
> > >> > hash de dados:
> > >> > 2.1) se já estiver com um registro em memória ($mirna), bota os
> dados
> > >> > acumulados ($acumulador) dentro do hash;
> > >> > 2.2) atribui à $mirna o novo registro encontrado. Note que estou
> > >> > usando grupos nomeados na regex, fazendo (?...) em vez de
> apenas
> > >> > (...). Isso funciona a partir do 5.10.0 e me permite acessar os
> > >> > valores agrupados na regex por nome dentro do hash %+. No caso,
> > >> > acessei o grupo (?) fazendo $+{mirna};
> > >> > 2.2) zera o acumulador.
> > >> > 3) se não encontrar a tag mágica, vai acumulando os dados. Dentro
> > >> > desse 'else' vc pode fazer coisas como "next if $linha =~ /.../"
> caso
> > >> > não queira guardar alguma linha, por exemplo.
> > >> > 4) Depois do while vc pode inspecionar %dados para saber se está
> tudo
> > >> > ok.
> > >> >
> > >> >
> > >> > Entendeu?
> > >> >
> > >> > []s
> > >> >
> > >> > -b
> > >> > ___
> > >> > Rio-pm mailing list
> > >> > Rio-pm@pm.org
> > >> > http://mail.pm.org/mailman/listinfo/rio-pm
> > >>
> > >> ___
> > >> Rio-pm mailing list
> > >> Rio-pm@pm.org
> > >> http://mail.pm.org/mailman/listinfo/rio-pm
> > >
> > >
> > > ___
> > > Rio-pm mailing list
> > > Rio-pm@pm.org
> > > http://mail.pm.org/mailman/listinfo/rio-pm
> > ___
> > 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://pacman.blog.br
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Comparação de arquivos

2012-11-25 Thread breno
2012/11/24 Aureliano Guedes :
> Tem muitas coisas que posso desconsiderar desse perlcritc, ne?!
>

No livro, cada recomendação acompanha uma breve discussão com
motivações, edge cases, exemplos e alternativas. O ideal é que vc leia
e tire suas próprias conclusões. Depois, pode criar seu próprio
arquivo ".perlcriticrc" apenas com as regras que deseja reforçar.
Algumas pessoas criaram suas próprias regras também, e colocaram no
CPAN. Procure por "Perl::Critic" e "Perl::Critic::Profile" para mais
detalhes.

Eu gosto bastante do "Perl Best Practices". Preste apenas um pouco
mais de atenção quando o Damian recomenda um ou outro módulo: o livro
é antigo (já tem mais de 7 anos), e muitos módulos deixaram de ser
mantidos ou provaram ser mais problemáticos do que benéficos, enquanto
outros padrões de-facto surgiram (como Moose). Para uma referência
mais atualizada dos módulos citados, veja
https://www.socialtext.net/perl5/pbp_module_recommendation_commentary

Independente do que escolha, o mais importante é consistência. Se
escolher um padrão ou conjunto de regras particulares de
desenvolvimento, certifique-se de que elas valem para todo o código :)

[]s

-b
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm


Re: [Rio-pm] Comparação de arquivos

2012-11-25 Thread breno
Assim vcs me matam de vergonha =P

[]s

-b

2012/11/24 Blabos de Blebe :
> "Três coisas são infinitas: o universo, a paciência do Breno e a
> estupidez humana. Mas, no que respeita ao universo, ainda não adquiri
> a certeza absoluta."
>
> 2012/11/24 Ole Peter Smith :
>>
>> On Nov 24, 2012 4:52 PM, "Aureliano Guedes"  wrote:
>>>
>>> Breno, que ser meu orientador... hahaha...
>>
>> se eu era reitor universitario, eu daria o grau de dr honoratis para o este
>> nosso breno, pela sua competencia, vastoconhecimento e infinita paciencia de
>> enseminar conhecimentos
>>
>> 0le
>>
>>
>>>
>>> Enfim, ficou assim http://pastebin.com/zrpLGwQs
>>>
>>> Ha algo que você mudaria???
>>>
>>> > Date: Sat, 24 Nov 2012 09:45:41 -0200
>>>
>>> > From: br...@rio.pm.org
>>> > To: rio-pm@pm.org
>>> > Subject: Re: [Rio-pm] Comparação de arquivos
>>> >
>>> > 2012/11/24 Aureliano Guedes :
>>> > >
>>> > > Se não for ser muito chato, como faço para seguir a forma abaixo:
>>> > >
>>> > >
>>> > >> 2) trocar de abordagem, fazendo seu parser ler linha a linha (sem
>>> > >> modificar $/) e ir acumulando as linhas até encontrar um símbolo que
>>> > >> indique nova entrada.
>>> > >
>>> > > seria algo do tipo:
>>> > >
>>> > > while (<$fh>){
>>> > > if(/primeira linha/){
>>> > > print $_;
>>> > > }
>>> > > elsif (/ultima linha/){
>>> > > #sair do loop
>>> > > }
>>> > > else {
>>> > > print $_
>>> > > }
>>> > > }
>>> > >
>>> >
>>> > Algo como (atenção, código não testado):
>>> >
>>> > ---8<---
>>> > my %dados = ();
>>> > my $mirna;
>>> > my $acumulador;
>>> >
>>> > while (my $linha = <$fh>) {
>>> > if ( $linha =~ m{tag magica (?\S+)} ) {
>>> > $dados{$mirna} = $acumulador if $mirna;
>>> > $mirna = $+{mirna};
>>> > $acumulador = q();
>>> > }
>>> > else {
>>> > $acumulador .= $linha;
>>> > }
>>> > }
>>> >
>>> > use DDP; p %dados;
>>> >
>>> > --->8---
>>> >
>>> > O que isso faz (ou deveria fazer: já mencionei que não testei?
>>> > Programar a essa hora da manhã não é meu forte, então favor
>>> > desconsiderar qualquer besteira):
>>> >
>>> > 1) le o arquivo linha por linha, atribuindo o valor de cada linha a
>>> > $linha (sem usar $_)
>>> > 2) sempre que encontrar a tag mágica que separa entradas (estou
>>> > assumindo que a tag indica um novo registro que pode ser chave do seu
>>> > hash de dados:
>>> > 2.1) se já estiver com um registro em memória ($mirna), bota os dados
>>> > acumulados ($acumulador) dentro do hash;
>>> > 2.2) atribui à $mirna o novo registro encontrado. Note que estou
>>> > usando grupos nomeados na regex, fazendo (?...) em vez de apenas
>>> > (...). Isso funciona a partir do 5.10.0 e me permite acessar os
>>> > valores agrupados na regex por nome dentro do hash %+. No caso,
>>> > acessei o grupo (?) fazendo $+{mirna};
>>> > 2.2) zera o acumulador.
>>> > 3) se não encontrar a tag mágica, vai acumulando os dados. Dentro
>>> > desse 'else' vc pode fazer coisas como "next if $linha =~ /.../" caso
>>> > não queira guardar alguma linha, por exemplo.
>>> > 4) Depois do while vc pode inspecionar %dados para saber se está tudo
>>> > ok.
>>> >
>>> >
>>> > Entendeu?
>>> >
>>> > []s
>>> >
>>> > -b
>>> > ___
>>> > Rio-pm mailing list
>>> > Rio-pm@pm.org
>>> > http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>> ___
>>> Rio-pm mailing list
>>> Rio-pm@pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>>
>> ___
>> Rio-pm mailing list
>> Rio-pm@pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
> ___
> 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] Comparação de arquivos

2012-11-25 Thread breno
2012/11/25 Tiago Peczenyj :
> nem perl. senão ele saberia que o correto é
>
> $E = m*c**2
>

ou, para cobrir todos os casos,

-8<-
use bignum;
use constant c => 299_792_458;
my $m = massa();
my $p = momentum();

my $E = sqrt( ($m * c**2)**2 + ($p * c)**2 );
->8-

=P

[]s

-b
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm


Re: [Rio-pm] Comparação de arquivos

2012-11-25 Thread Ole Peter Smith
vergonha nada, orgulho, rapaz!

0le

Send via Android
On Nov 26, 2012 1:53 AM, "breno"  wrote:

> Assim vcs me matam de vergonha =P
>
> []s
>
> -b
>
> 2012/11/24 Blabos de Blebe :
> > "Três coisas são infinitas: o universo, a paciência do Breno e a
> > estupidez humana. Mas, no que respeita ao universo, ainda não adquiri
> > a certeza absoluta."
> >
> > 2012/11/24 Ole Peter Smith :
> >>
> >> On Nov 24, 2012 4:52 PM, "Aureliano Guedes" 
> wrote:
> >>>
> >>> Breno, que ser meu orientador... hahaha...
> >>
> >> se eu era reitor universitario, eu daria o grau de dr honoratis para o
> este
> >> nosso breno, pela sua competencia, vastoconhecimento e infinita
> paciencia de
> >> enseminar conhecimentos
> >>
> >> 0le
> >>
> >>
> >>>
> >>> Enfim, ficou assim http://pastebin.com/zrpLGwQs
> >>>
> >>> Ha algo que você mudaria???
> >>>
> >>> > Date: Sat, 24 Nov 2012 09:45:41 -0200
> >>>
> >>> > From: br...@rio.pm.org
> >>> > To: rio-pm@pm.org
> >>> > Subject: Re: [Rio-pm] Comparação de arquivos
> >>> >
> >>> > 2012/11/24 Aureliano Guedes :
> >>> > >
> >>> > > Se não for ser muito chato, como faço para seguir a forma abaixo:
> >>> > >
> >>> > >
> >>> > >> 2) trocar de abordagem, fazendo seu parser ler linha a linha (sem
> >>> > >> modificar $/) e ir acumulando as linhas até encontrar um símbolo
> que
> >>> > >> indique nova entrada.
> >>> > >
> >>> > > seria algo do tipo:
> >>> > >
> >>> > > while (<$fh>){
> >>> > > if(/primeira linha/){
> >>> > > print $_;
> >>> > > }
> >>> > > elsif (/ultima linha/){
> >>> > > #sair do loop
> >>> > > }
> >>> > > else {
> >>> > > print $_
> >>> > > }
> >>> > > }
> >>> > >
> >>> >
> >>> > Algo como (atenção, código não testado):
> >>> >
> >>> > ---8<---
> >>> > my %dados = ();
> >>> > my $mirna;
> >>> > my $acumulador;
> >>> >
> >>> > while (my $linha = <$fh>) {
> >>> > if ( $linha =~ m{tag magica (?\S+)} ) {
> >>> > $dados{$mirna} = $acumulador if $mirna;
> >>> > $mirna = $+{mirna};
> >>> > $acumulador = q();
> >>> > }
> >>> > else {
> >>> > $acumulador .= $linha;
> >>> > }
> >>> > }
> >>> >
> >>> > use DDP; p %dados;
> >>> >
> >>> > --->8---
> >>> >
> >>> > O que isso faz (ou deveria fazer: já mencionei que não testei?
> >>> > Programar a essa hora da manhã não é meu forte, então favor
> >>> > desconsiderar qualquer besteira):
> >>> >
> >>> > 1) le o arquivo linha por linha, atribuindo o valor de cada linha a
> >>> > $linha (sem usar $_)
> >>> > 2) sempre que encontrar a tag mágica que separa entradas (estou
> >>> > assumindo que a tag indica um novo registro que pode ser chave do seu
> >>> > hash de dados:
> >>> > 2.1) se já estiver com um registro em memória ($mirna), bota os dados
> >>> > acumulados ($acumulador) dentro do hash;
> >>> > 2.2) atribui à $mirna o novo registro encontrado. Note que estou
> >>> > usando grupos nomeados na regex, fazendo (?...) em vez de apenas
> >>> > (...). Isso funciona a partir do 5.10.0 e me permite acessar os
> >>> > valores agrupados na regex por nome dentro do hash %+. No caso,
> >>> > acessei o grupo (?) fazendo $+{mirna};
> >>> > 2.2) zera o acumulador.
> >>> > 3) se não encontrar a tag mágica, vai acumulando os dados. Dentro
> >>> > desse 'else' vc pode fazer coisas como "next if $linha =~ /.../" caso
> >>> > não queira guardar alguma linha, por exemplo.
> >>> > 4) Depois do while vc pode inspecionar %dados para saber se está tudo
> >>> > ok.
> >>> >
> >>> >
> >>> > Entendeu?
> >>> >
> >>> > []s
> >>> >
> >>> > -b
> >>> > ___
> >>> > Rio-pm mailing list
> >>> > Rio-pm@pm.org
> >>> > http://mail.pm.org/mailman/listinfo/rio-pm
> >>>
> >>> ___
> >>> Rio-pm mailing list
> >>> Rio-pm@pm.org
> >>> http://mail.pm.org/mailman/listinfo/rio-pm
> >>
> >>
> >> ___
> >> Rio-pm mailing list
> >> Rio-pm@pm.org
> >> http://mail.pm.org/mailman/listinfo/rio-pm
> > ___
> > Rio-pm mailing list
> > Rio-pm@pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> ___
> Rio-pm mailing list
> Rio-pm@pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm