[Cascavel-pm] otimização em manipulação de texto
Rodrigo Fernandes
fernandesrp em yahoo.com
Terça Dezembro 4 12:12:12 PST 2007
--- Nelson Ferraz <nferraz em gmail.com> wrote:
> > Basicamente, abro o arquivo, coloco o conteúdo
> numa
> > array através do operador diamante, pesquiso
> > linha-a-linha o meu fenômeno. Quando encontrado,
> > modifico-o, volto a salvar em disco e inicio tudo
> > novamente.
>
> Se você estiver lidando com arquivos grandes, é
> melhor fazer as
> substituições linha a linha, ou parágrafo a
> parágrafo, do que
> carregá-lo inteiro na memória.
>
> Isto é:
>
> while ( my $line = <> ) {
>
> # do something with $line
>
> }
Isto já é o que acontece.
>
> > Bem, Perl é uma ótima linguagem, principalmente,
> para
> > mim, por eu não precisar declarar todas as
> variáveis,
> > mas Perl não deve ser à prova de estupidez, e acho
> que
> > meu código está um pouquinho estúpido.
>
> Você pode começar a torná-lo mais inteligente, se
> abrir mão do "não
> precisar declarar todas as variáveis".
>
> Ou seja: inclua um "use strict" e um "use warnings"
> no começo do seu programa.
>
> É bem provável que, quando você fizer isso, seu
> programa comece a
> apresentar mensagens de erro. É para isso que estas
> diretivas servem,
> para apontar os problemas, de forma que você possa
> corrigi-los.
>
> Portanto, comece os seus programas com:
>
> #!/usr/bin/perl
>
> use strict;
> use warnings;
>
> while ( my $line = <> ) {
> # ...
> }
>
Iso já é o que acontece... a não ser pelas warnings,
que depois de um certo tempo foram arbitrariamente
caladas.
> > Gostaria de saber a melhor forma de otimizá-lo.
> > Acredito que um caminho seria fazer todas as
> > alterações e salvar em disco apenas no final.
> Porém,
> > meus dados, eventualemnte, podem chegar a 500 Mb e
> > centenas de arquivos plain text, ou MUITO mais. Há
> > alguma forma "perlniana" de automatizar o fluxo
> > memória/disco para fins de otimização? Algo que
> > monitore a quantidade de memória necessária e
> decida
> > onde os dados serão armazenados. Ou nada disto é
> > necessário?
>
> Na minha opinião, é melhor lidar com pedaços menores
> de texto, ao
> invés de tentar colocar tudo na memória de uma vez.
>
> Se você nos contar que tipo de dados está lidando --
> ou melhor ainda.
> se puder nos fornecer um exemplo -- talvez possamos
> ajudá-lo melhor.
Obrigado pelo interesse, Nelson. Os arquivos são todos
plain text, de tamanhos bastante diferentes. Desde o
input, arquivos intermediários e o output, aparecem
bichos de 1 kb a 10 MB, aproximadamente. São arquivos
da biblioteca digital
<http://bibdigital.inf.ufsc.br/bdnupill/>
Grato,
R. Fernandes
>
> []s
>
> Nelson
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs
Mais detalhes sobre a lista de discussão Cascavel-pm