[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