MAL!!<br>Então melhor assim né ?<br><br>open(my $backup, &#39;&lt;&#39;, &quot;$backupname&quot; );<br>open(my $file, &#39;&gt;&#39;, &quot;$filename&quot; );<br><br>foreach my $name(@nomes) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excluir_nomes($name);
<br>}<br><br>sub excluir_nomes {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $name = shift;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (&lt;$backup&gt;) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; next if $_ =~ /^$name$/;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $file $_;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}<br>close($file);<br>close ($backup);
<br><br><br><div><span class="gmail_quote">On 9/4/07, <b class="gmail_sendername">Gabriel Vieira</b> &lt;<a href="mailto:gabriel.vieira@gmail.com">gabriel.vieira@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Abriria o arquivo a cada execução sem necessidade :)<br><br>On 9/4/07, Márcio Vitor &lt;<a href="mailto:cromo.jml@gmail.com">cromo.jml@gmail.com</a>&gt; wrote:<br>&gt; A melhor opção para o caso seria mesmo o &quot;tie&quot;, sem o tie eu faria desta
<br>&gt; maneira:<br>&gt; ...<br>&gt; foreach my $name(@nomes) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excluir_nomes($name);<br>&gt; }<br>&gt; sub excluir_nomes {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $name = shift;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open(my $backup, &#39;&lt;&#39;, &quot;$backupname&quot; );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open(my $file, &#39;&gt;&#39;, &quot;$filename&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (&lt;$backup&gt;) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; next if $_ =~ /^$name$/;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $file $_;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; close($file);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; close ($backup);<br>&gt; }<br>&gt;<br>&gt; Não sei se isto resolve o problema, mas derepente elucida.<br>&gt;<br>&gt; Márcio Vitor<br>&gt;<br>&gt;<br>&gt; On 9/4/07, Gabriel Vieira &lt;
<a href="mailto:gabriel.vieira@gmail.com">gabriel.vieira@gmail.com</a>&gt; wrote:<br>&gt; &gt;<br>&gt; &gt; tb nao executei mas o foreach aciona a subrotina antes de abrir os<br>&gt; &gt; arquivos, não?<br>&gt; &gt;<br>&gt; &gt;
<br>&gt; &gt; On 9/4/07, Rafael Lebrão Martins &lt;<a href="mailto:rafamv1@ig.com.br">rafamv1@ig.com.br</a>&gt; wrote:<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;&gt; my $name;<br>&gt; &gt; &gt; &gt;&gt; foreach $name(@nomes) {
<br>&gt; &gt; &gt; &gt;&gt; excluir_nomes($name);<br>&gt; &gt; &gt; &gt;&gt; }<br>&gt; &gt; &gt; &gt;&gt; copy($file, $backup);<br>&gt; &gt; &gt; &gt;&gt; open( ARQUIVO, &#39;&gt;&#39;, &quot;$file&quot; );<br>&gt; &gt; &gt; &gt;&gt; open( BACKUP, &#39;&lt;&#39;, &quot;$backup&quot; );
<br>&gt; &gt; &gt; &gt;&gt;<br>&gt; &gt; &gt; &gt;&gt; sub excluir_nomes {<br>&gt; &gt; &gt; &gt;&gt; foreach ( ) {<br>&gt; &gt; &gt; &gt;&gt; next if $_ =~ /^$name$/;<br>&gt; &gt; &gt; &gt;&gt; print ARQUIVO $_;<br>&gt; &gt; &gt; &gt;&gt; }
<br>&gt; &gt; &gt; &gt;&gt; }<br>&gt; &gt; &gt; &gt;&gt; close (ARQUIVO);<br>&gt; &gt; &gt; &gt;&gt; close (BACKUP);<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;Não executei, mas parece correto.<br>&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;Talvez você ache bastante conveniente usar uma interface &quot;tie&quot; para seu<br>&gt; &gt; &gt; programa. Você recria a estrutura do arquivo numa estrutura de dados do<br>&gt; &gt; &gt; Perl, e ao remover uma linha desse estrutura, automaticamente o arquivo
<br>&gt; será<br>&gt; &gt; &gt; atualizado.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;Seu programa também não está exatamente escrito para ter boa<br>&gt; performance,<br>&gt; &gt; &gt; mas se isso não é um problema, está correto. :-)
<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;[]&#39;s<br>&gt; &gt; &gt; &gt;Alceu<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Olá Alceu.. Vou estudar um pouco mais sobre o &quot;tie&quot; e seguir a sua<br>&gt; &gt; &gt; orientação. Se a minha lógica está correta, o código deveria apagar&nbsp;&nbsp;no
<br>&gt; &gt; &gt; arquivo, todos os nomes da lista &quot;@nomes&quot;. Tentei novamente aqui e ele<br>&gt; apaga<br>&gt; &gt; &gt; todo o conteúdo mesmo!&nbsp;&nbsp;Tem um detalhe também, depois de executar o<br>&gt; código<br>&gt; &gt; &gt; ele me retorna:
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; readline() on unopened filehandle BACKUP at apgsub.pl line 36.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; mas, se estou certo, &quot;BACKUP&quot; está aberto!<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; _______________________________________________<br>&gt; &gt; &gt; Cascavel-pm mailing list<br>&gt; &gt; &gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; &gt; &gt; 
<a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>&gt; &gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; --<br>&gt; &gt; Gabriel Vieira<br>&gt; &gt; _______________________________________________
<br>&gt; &gt; Cascavel-pm mailing list<br>&gt; &gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; &gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm
</a><br>&gt; &gt;<br>&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; Cascavel-pm mailing list<br>&gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>&gt;<br><br><br>--<br>Gabriel Vieira<br>_______________________________________________<br>Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org
</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br>