[Cascavel-pm] edição de arquivos com P
Luis Campos de Carvalho
monsieur_champs em yahoo.com.br
Quinta Março 24 05:23:18 PST 2005
Alceu R. de Freitas Jr. wrote:
> --- Marco Lima <marco.lima em e-via.com.br> wrote:
>
>>Se é para apelar !!
>>
>><code>
>> #!/usr/bin/perl -w
>> use strict;
>> use Tie::File::AsHash;
>
>
> É, você apelou bastante aqui... apesar que talvez,
> para meu caso específico, não exista muita vantagem em
> jogar isso para um Hash. Até aonde eu entendi, ele
> copia o conteúdo do array para um hash... seria útil
> se eu quisesse fazer diversas operações dentro do
> arquivo, mas na verdade farei uma só. Como ele
> provavelmente vai ter que procurar apenas um registro
> no arquivo todo, acho que seria mais vantagem já
> executar a operação que preciso ao invés de copiar
> todas as entradas para o hash e depois fazer a
> alteração usando
>
> $hash{entrada} =~ s/agua/cerveja/g;
>
> Estou correto?
Quase: se você tiver entradas repetidas, elas serão sobrescritas no
hash table. Isso quer dizer: muito cuidado ao usar este mecanismo.
Quanto a truncar o arquivo: esquece, isso não precisa ser tão
complicado assim. O *nix garante sicronia de escrita e gravação: você
pode mover o arquivo temporário sobre o novo arquivo, sem risco de se
ferrar.
Quanto a ler para a memória: cuidado! Eu recomendo que você não faça
isso, nunca, mesmo que o arquivo seja pequeno. Apenas como boa prática
de programação.
Eu, no seu lugar, usaria o File::Temp e o Tie::File::Array.
Putamplexos, boa sorte e manda a implementação final para a gente
ver, se você puder...
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho is BSc in Comp Science,
PerlMonk [SiteDocClan], Sao Paulo PM Leader,
Unix Sys Admin && Certified Oracle DBA
http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão Cascavel-pm