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

2012-11-25 Por tôpico 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 ole@gmail.com:
 
  On Nov 24, 2012 4:52 PM, Aureliano Guedes guedes_1...@hotmail.com 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 guedes_1...@hotmail.com:
   
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 (?mirna\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 (?tag...) 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 (?mirna) 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 Por tôpico Tiago Peczenyj
nem perl. senão ele saberia que o correto é

$E = m*c**2

2012/11/25 Aureliano Guedes guedes_1...@hotmail.com

   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 ole@gmail.com:
  
   On Nov 24, 2012 4:52 PM, Aureliano Guedes guedes_1...@hotmail.com
 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 guedes_1...@hotmail.com:

 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 (?mirna\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 (?tag...) 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 (?mirna) 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 Por tôpico breno
2012/11/24 Aureliano Guedes guedes_1...@hotmail.com:
 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 Por tôpico breno
Assim vcs me matam de vergonha =P

[]s

-b

2012/11/24 Blabos de Blebe bla...@gmail.com:
 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 ole@gmail.com:

 On Nov 24, 2012 4:52 PM, Aureliano Guedes guedes_1...@hotmail.com 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 guedes_1...@hotmail.com:
  
   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 (?mirna\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 (?tag...) 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 (?mirna) 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 Por tôpico breno
2012/11/25 Tiago Peczenyj tiago.pecze...@gmail.com:
 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 Por tôpico Ole Peter Smith
vergonha nada, orgulho, rapaz!

0le

Send via Android
On Nov 26, 2012 1:53 AM, breno br...@rio.pm.org wrote:

 Assim vcs me matam de vergonha =P

 []s

 -b

 2012/11/24 Blabos de Blebe bla...@gmail.com:
  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 ole@gmail.com:
 
  On Nov 24, 2012 4:52 PM, Aureliano Guedes guedes_1...@hotmail.com
 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 guedes_1...@hotmail.com:
   
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 (?mirna\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 (?tag...) 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 (?mirna) 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