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