<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:14pt"><div style="font-family: times new roman,new york,times,serif; font-size: 14pt;">Oiiiiiiiiiii Igor :)<br>Obrigada...<br><br><br><br>Consegui resolver...<br>$t-&gt;process(\$format,$data_ref,$arquivo_saida); ao invez de: <span style="background-color: rgb(255, 255, 0);">$t-&gt;process(\*DATA,$data_ref,$arquivo_saida) <br><br><span style="background-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"></span></span>Atribui o formato de saida a variavel Format :) ai funcionou<br><br><br>[]sss<br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Mensagem original ----<br>De: Igor Sutton &lt;igor.sutton@gmail.com&gt;<br>Para: Cascavel Perl Mongers &lt;cascavel-pm@pm.org&gt;<br>Enviadas: Terça-feira, 9 de Janeiro de 2007 17:21:09<br>Assunto: Re: [Cascavel-pm] use Template<br><br><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 rel="nofollow" target="_blank" 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 "Problemas ao abrir diretorio: $!";
<br><br>while (my $file = readdir(DIR)) <br>{<br>&nbsp;&nbsp;&nbsp; next if $file eq '.' or $file eq '..';<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; chdir($dir) || die "\n *** Erro no diretorio $dir ***";<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="$".".log_error";</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, "&lt;", $file or die "Nao pode acessar o arquivo: $!";<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,
 "&lt;$file") or die("Nao pode acessar o arquivo");<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 'erro')<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 "Não removi o arquivo: $!"; 
<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 "$basedir" requires explicit package name at 
patty.pl line 8.<br>Global symbol "$dir" requires explicit package name at patty.pl line 13.<br>Global symbol "$dir" requires explicit package name at patty.pl line 13.<br>Global symbol "$arquivo_saida" requires explicit package name at 
patty.pl line 16.<br>Global symbol "$bla" requires explicit package name at patty.pl line 22.<br>Global symbol "@erros" requires explicit package name at patty.pl line 23.<br>Global symbol "$nome" requires explicit package name at 
patty.pl line 23.<br>Global symbol "$data" requires explicit package name at patty.pl line 23.<br>Global symbol "$dirlog" requires explicit package name at patty.pl line 30.<br>Global symbol "$tamanho" requires explicit package name at 
patty.pl line 32.<br>Global symbol "@erros" requires explicit package name at patty.pl line 32.<br>Global symbol "@erros" requires explicit package name at patty.pl line 34.<br>Global symbol "$arquivo_saida" requires explicit package name at 
patty.pl line 38.<br>Global symbol "$dbh" requires explicit package name at patty.pl line 45.<br>Global symbol "%DBM" 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 "perl -c" 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 rel="nofollow" target="_blank" href="mailto:igor.sutton@gmail.com">
igor.sutton@gmail.com</a>&gt;
<div>_______________________________________________<br>Cascavel-pm mailing list<br>Cascavel-pm@pm.org<br><a target="_blank" href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a></div></div><br></div></div><br>__________________________________________________<br>Fale com seus amigos  de graça com o novo Yahoo! Messenger <br>http://br.messenger.yahoo.com/ </body></html>