A melhor opção para o caso seria mesmo o &quot;tie&quot;, sem o tie eu faria desta maneira:<br>...<br>foreach my $name(@nomes) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excluir_nomes($name);<br>}<br>sub excluir_nomes {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $name = shift;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open(my $backup, &#39;&lt;&#39;, &quot;$backupname&quot; );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open(my $file, &#39;&gt;&#39;, &quot;$filename&quot; );<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; close($file);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; close ($backup);<br>}<br><br>Não sei se isto resolve o problema, mas derepente elucida.<br><br>Márcio Vitor<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;">
tb nao executei mas o foreach aciona a subrotina antes de abrir os<br>arquivos, não?<br><br><br>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;<br>&gt; &gt;&gt; my $name;
<br>&gt; &gt;&gt; foreach $name(@nomes) {<br>&gt; &gt;&gt; excluir_nomes($name);<br>&gt; &gt;&gt; }<br>&gt; &gt;&gt; copy($file, $backup);<br>&gt; &gt;&gt; open( ARQUIVO, &#39;&gt;&#39;, &quot;$file&quot; );<br>&gt; &gt;&gt; open( BACKUP, &#39;&lt;&#39;, &quot;$backup&quot; );
<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; sub excluir_nomes {<br>&gt; &gt;&gt; foreach ( ) {<br>&gt; &gt;&gt; next if $_ =~ /^$name$/;<br>&gt; &gt;&gt; print ARQUIVO $_;<br>&gt; &gt;&gt; }<br>&gt; &gt;&gt; }<br>&gt; &gt;&gt; close (ARQUIVO);
<br>&gt; &gt;&gt; close (BACKUP);<br>&gt; &gt;<br>&gt; &gt;Não executei, mas parece correto.<br>&gt; &gt;<br>&gt; &gt;Talvez você ache bastante conveniente usar uma interface &quot;tie&quot; para seu<br>&gt; programa. Você recria a estrutura do arquivo numa estrutura de dados do
<br>&gt; Perl, e ao remover uma linha desse estrutura, automaticamente o arquivo será<br>&gt; atualizado.<br>&gt; &gt;<br>&gt; &gt;Seu programa também não está exatamente escrito para ter boa performance,<br>&gt; mas se isso não é um problema, está correto. :-)
<br>&gt; &gt;<br>&gt; &gt;[]&#39;s<br>&gt; &gt;Alceu<br>&gt;<br>&gt; Olá Alceu.. Vou estudar um pouco mais sobre o &quot;tie&quot; e seguir a sua<br>&gt; orientação. Se a minha lógica está correta, o código deveria apagar&nbsp;&nbsp;no
<br>&gt; arquivo, todos os nomes da lista &quot;@nomes&quot;. Tentei novamente aqui e ele apaga<br>&gt; todo o conteúdo mesmo!&nbsp;&nbsp;Tem um detalhe também, depois de executar o código<br>&gt; ele me retorna:<br>&gt;<br>&gt; readline() on unopened filehandle BACKUP at 
apgsub.pl line 36.<br>&gt;<br>&gt; mas, se estou certo, &quot;BACKUP&quot; está aberto!<br>&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>