[Cascavel-pm] Apagar nomes em arquivo.

Gabriel Vieira gabriel.vieira em gmail.com
Terça Setembro 4 13:16:32 PDT 2007


tb nao executei mas o foreach aciona a subrotina antes de abrir os
arquivos, não?


On 9/4/07, Rafael Lebrão Martins <rafamv1 em ig.com.br> wrote:
>
> >> my $name;
> >> foreach $name(@nomes) {
> >> excluir_nomes($name);
> >> }
> >> copy($file, $backup);
> >> open( ARQUIVO, '>', "$file" );
> >> open( BACKUP, '<', "$backup" );
> >>
> >> sub excluir_nomes {
> >> foreach ( ) {
> >> next if $_ =~ /^$name$/;
> >> print ARQUIVO $_;
> >> }
> >> }
> >> close (ARQUIVO);
> >> close (BACKUP);
> >
> >Não executei, mas parece correto.
> >
> >Talvez você ache bastante conveniente usar uma interface "tie" para seu
> programa. Você recria a estrutura do arquivo numa estrutura de dados do
> Perl, e ao remover uma linha desse estrutura, automaticamente o arquivo será
> atualizado.
> >
> >Seu programa também não está exatamente escrito para ter boa performance,
> mas se isso não é um problema, está correto. :-)
> >
> >[]'s
> >Alceu
>
> Olá Alceu.. Vou estudar um pouco mais sobre o "tie" e seguir a sua
> orientação. Se a minha lógica está correta, o código deveria apagar  no
> arquivo, todos os nomes da lista "@nomes". Tentei novamente aqui e ele apaga
> todo o conteúdo mesmo!  Tem um detalhe também, depois de executar o código
> ele me retorna:
>
> readline() on unopened filehandle BACKUP at apgsub.pl line 36.
>
> mas, se estou certo, "BACKUP" está aberto!
>
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


-- 
Gabriel Vieira


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