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