[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