[Cascavel-pm] Apagar nomes em arquivo.

Márcio Vitor cromo.jml em gmail.com
Terça Setembro 4 13:20:56 PDT 2007


A melhor opção para o caso seria mesmo o "tie", sem o tie eu faria desta
maneira:
...
foreach my $name(@nomes) {
        excluir_nomes($name);
}
sub excluir_nomes {
        my $name = shift;
        open(my $backup, '<', "$backupname" );
        open(my $file, '>', "$filename" );
        while (<$backup>) {
                next if $_ =~ /^$name$/;
                print $file $_;
        }
        close($file);
        close ($backup);
}

Não sei se isto resolve o problema, mas derepente elucida.

Márcio Vitor

On 9/4/07, Gabriel Vieira <gabriel.vieira em gmail.com> wrote:
>
> 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
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070904/6f382b13/attachment.html 


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