<br>Oi Patty,<br><br>Primeirissima coisa:<br><br>use strict;<br>

use warnings;<br>
<br>

use strict;<br>

use warnings;<br>
<br>

use strict;<br>

use warnings;<br>
<br>

use strict;<br>

use warnings;<br>
<br>

use strict;<br>

use warnings;<br>
<br>

use strict;<br>

use warnings;<br>
<br>

use strict;<br>

use warnings;<br>
<br>

use strict;<br>

use warnings;<br>
<br>

use strict;<br>

use warnings;<br><br>
use strict;<br>

use warnings;<br>
<br>

<span class="gmail_quote"></span>use strict;<br>

use warnings;<br>
<br>Agora continuando...<br>

<span class="gmail_quote"></span><br>

<span class="gmail_quote"></span><div><span class="gmail_quote">Em 09/01/07, <b class="gmail_sendername">Patty Silva</b> &lt;<a href="mailto:ptfzs@yahoo.com.br">ptfzs@yahoo.com.br</a>&gt; escreveu:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><div>Ola Pessoal.. estou usando o Template porem nao estou conseguindo fazer a gravacao em diversos arquivo ele so grava no 1 arquivo..
<br><br>meu codigo resumido.....:<br>Eu leio de um diretorio diversos arquivos e se dentro do arquivo possuir erro ele me gera um LOG ....<br><br>#!/usr/bin/perl<br><br><br>use Template;<br>.................<br>opendir (DIR, $basedir) or die &quot;Problemas ao abrir diretorio: $!&quot;;
<br><br>while (my $file = readdir(DIR)) <br>{<br>&nbsp;&nbsp;&nbsp; next if $file eq &#39;.&#39; or $file eq &#39;..&#39;;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; chdir($dir) || die &quot;\n *** Erro no diretorio $dir ***&quot;;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; $file=~ /(\d\d\d\d\d\d)/;
</div></div></div></blockquote><div><br>Aqui tá errado, não seria $1?<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">
<div>&nbsp;&nbsp;&nbsp; $arquivo_saida=&quot;$&quot;.&quot;.log_error&quot;;</div></div></div></blockquote><div><br>Use o formato de open com três parâmetros, e de preferência com variáveis escalares (Hrm... Acho que isto já foi dito uma vez...). Ah! Claro! Perl não é telepata! Você tem que pedir para ele te dizer por que não abriu o arquivo (Variável $!):
<br><br>open my $fh, &quot;&lt;&quot;, $file or die &quot;Nao pode acessar o arquivo: $!&quot;;<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><div>&nbsp;&nbsp;&nbsp; open(FH,
 &quot;&lt;$file&quot;) or die(&quot;Nao pode acessar o arquivo&quot;);<br><br>&nbsp;&nbsp;&nbsp; while(&lt;FH&gt;)<br>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;  .....................................................</div></div></div></blockquote><div><br>$bla não é nome de variável. 
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">
<div>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if($bla eq &#39;erro&#39;)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</div></div></div></blockquote><div><br>Ponto e vírgula! Sempre! Mesmo que seja o último comando e o Perl não encha seu saco. Depois você coloca uma instrução abaixo desta linha e dá caca, aí você vem perguntar a razão.
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">
<div>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; push @erros, { var =&gt; $nome,data =&gt; $data}<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</div></div></div></blockquote><div><br>unlink $file or warn &quot;Não removi o arquivo: $!&quot;; 
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">
<div>unlink($file);<br><br><span style="background-color: rgb(255, 255, 0);">chdir($dirlog);</span><br style="background-color: rgb(255, 255, 0);"><br style="background-color: rgb(255, 255, 0);"><span style="background-color: rgb(255, 255, 0);">
$tamanho = @erros;</span><br style="background-color: rgb(255, 255, 0);"><br style="background-color: rgb(255, 255, 0);"><span style="background-color: rgb(255, 255, 0);">my $data_ref = {</span><br style="background-color: rgb(255, 255, 0);">
<span style="background-color: rgb(255, 255, 0);">&nbsp;&nbsp;&nbsp; erros =&gt; \@erros,</span><br style="background-color: rgb(255, 255, 0);"><span style="background-color: rgb(255, 255, 0);">};</span><br style="background-color: rgb(255, 255, 0);">
<br style="background-color: rgb(255, 255, 0);"><span style="background-color: rgb(255, 255, 0);">my $t = Template-&gt;new;</span></div></div></div></blockquote><div><br>Segundo perldoc Template:<br><br>$t-&gt;process(...) or die $template-&gt;error(); 
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">
<div><span style="background-color: rgb(255, 255, 0);">$t-&gt;process(\*DATA,$data_ref,$arquivo_saida) </span><br><br><br><br>}<br><br>-----------------------------------------------------------------------------------------------------------
<br>close(FH);<br>closedir(DIR);<br><br>$dbh-&gt;disconnect();<br><br>dbmclose %DBM;<br><br><br><span style="background-color: rgb(255, 255, 0);">__DATA__</span><br style="background-color: rgb(255, 255, 0);"><br style="background-color: rgb(255, 255, 0);">
<span style="background-color: rgb(255, 255, 0);">ERRO</span><br style="background-color: rgb(255, 255, 0);"><span style="background-color: rgb(255, 255, 0);">[% FOREACH id = erros %]</span><br style="background-color: rgb(255, 255, 0);">
<span style="background-color: rgb(255, 255, 0);">---------------------------------------------------------------------------------</span><br style="background-color: rgb(255, 255, 0);"><span style="background-color: rgb(255, 255, 0);">
Variavel: [%nome%] Data: [% data %] </span><br style="background-color: rgb(255, 255, 0);"><span style="background-color: rgb(255, 255, 0);">---------------------------------------------------------------------------------
</span><br style="background-color: rgb(255, 255, 0);"><span style="background-color: rgb(255, 255, 0);">[% END %]</span><br><br><font size="4"><br style="font-weight: bold;"><br style="font-weight: bold;"><span style="font-weight: bold;">
Quando tem diversos arquivos ele gera so do 1 e da o seguinte erro nos outros:</span><br style="font-weight: bold;"><br style="font-weight: bold;"><span style="font-weight: bold;">Use of uninitialized value in substr at <span style="background-color: rgb(191, 0, 95); color: rgb(255, 255, 191);">
/usr/lib/perl5/site_perl/5.8.8/i586-linux-thread-multi/Template/Provider.pm line 1044, &lt;DATA&gt; chunk 1.</span></span><br style="font-weight: bold;"><br style="font-weight: bold;"><br style="font-weight: bold;"><br style="font-weight: bold;">
<span style="font-weight: bold;">Alguem pode dizer o que pode ser??</span></font></div></div></div></blockquote><div><br>Adicionando strict e warnings no seu programa:<br><br>[igor@roy ~]$ perl -c patty.pl <br>Global symbol &quot;$basedir&quot; requires explicit package name at 
patty.pl line 8.<br>Global symbol &quot;$dir&quot; requires explicit package name at patty.pl line 13.<br>Global symbol &quot;$dir&quot; requires explicit package name at patty.pl line 13.<br>Global symbol &quot;$arquivo_saida&quot; requires explicit package name at 
patty.pl line 16.<br>Global symbol &quot;$bla&quot; requires explicit package name at patty.pl line 22.<br>Global symbol &quot;@erros&quot; requires explicit package name at patty.pl line 23.<br>Global symbol &quot;$nome&quot; requires explicit package name at 
patty.pl line 23.<br>Global symbol &quot;$data&quot; requires explicit package name at patty.pl line 23.<br>Global symbol &quot;$dirlog&quot; requires explicit package name at patty.pl line 30.<br>Global symbol &quot;$tamanho&quot; requires explicit package name at 
patty.pl line 32.<br>Global symbol &quot;@erros&quot; requires explicit package name at patty.pl line 32.<br>Global symbol &quot;@erros&quot; requires explicit package name at patty.pl line 34.<br>Global symbol &quot;$arquivo_saida&quot; requires explicit package name at 
patty.pl line 38.<br>Global symbol &quot;$dbh&quot; requires explicit package name at patty.pl line 45.<br>Global symbol &quot;%DBM&quot; requires explicit package name at patty.pl line 47.<br>patty.pl had compilation errors.
<br><br>Ah! Isso quer dizer que os tracinhos sem importância que estavam no meio do seu código são linhas que não fazem diferença prá gente?<br><br>Posta o código completo, que pelo menos passe no teste do &quot;perl -c&quot; daí a gente continua a conversa.
<br></div><br>Antes que você me xingue denovo, eu acredito que você tenha condições de fazer a coisa certa e aprender, mas não é isso que parece estar acontecendo...<br><br></div>-- <br>Igor Sutton Lopes &lt;<a href="mailto:igor.sutton@gmail.com">
igor.sutton@gmail.com</a>&gt;