[Cascavel-pm] Apagar nomes em arquivo.

Rafael Lebrão Martins rafamv1 em ig.com.br
Quarta Setembro 5 03:49:05 PDT 2007


> Beeem melhor (principalmente os open()s).... mas ainda assim, não tá 
fazendo a coisa certa... 
> 
>Note que, da primeira vez que você chamar excluir_nomes, você vai percorrer 
todas as linhas do arquivo backup. 
> 
>Quando você chama excluir_nomes de novo, não vai ter mais linhas pra ler, 
então você só vai ter excluido o primeiro nome. 
> 
>O certo seria você olhar pra cada linha de backup, e decidir de se ela vive 
ou morre com base na lista de todos os nomes. (ou abrir e fechar os arquivos 
dentro da função, o que não é muito eficiente) 
> 
>[]s 
> 
>Wendel 

Alterei o loop, mas continua excluindo apenas o primeiro nome.. Acho que da 
forma que fiz agora, teria que excluir, não? 

copy( $file, $backup ); 
open( ARQUIVO, '>', "$file" ); 
open( BACKUP, '<', "$backup" ); 

foreach my $name(@nomes) { 
excluir_nomes($name); 
} 

sub excluir_nomes{ 
my $name = shift; 
foreach(<BACKUP>) { 
next if $_ =~ /^$name$/; 
print ARQUIVO $_; 
}} 
close (ARQUIVO); 
close (BACKUP); 




Mais detalhes sobre a lista de discussão Cascavel-pm