[Cascavel-pm] Uso de Template

Patty Silva ptfzs em yahoo.com.br
Quarta Maio 9 05:15:22 PDT 2007


Luis.. :D
Eu 1 verifico se o arquivo existe...
se ele existir eu vou "ACRESCENTAR" dados no arquivo
if(-e "$dirlog/$dir/$log_error")
{
        print "ARQUIVO EXISTE\n";
        open my $FH1, ">>", $out or die "Nao foi Possivel Abrir o Arquivo: $!";
        $t->process( \$input, $ref, $\out ) or die $template->error();

        
    }
    else
    {
      print "ARQUIVO NAO EXISTE\n";
       $t->process( \$input, $ref, $out ) or die $template->error();
    
    }

massssss nao funcionou.. ele imprime o nome do arquivo ...
:D
o q eu percebi foi que o  $t->process( \$input, $ref, $\out ) ele cria outro arquivo.. independente de ja existir ou nao...

[]ss

Luis Motta Campos <luismottacampos em yahoo.co.uk> escreveu: On May 8, 2007, at 8:39 PM, Patty Silva wrote:
> Ola Pessoal...
> Estou usando a biblioteca Template

   Vejo que está usando seu cérebro, também. Parabéns por escolher  
uma biblioteca de templating e não tentar escrever a sua.

> so que quero que invez dela criar um arquivo novo ela apendar os  
> dados no arquivo ja existente

   "apendar" é a coisa mais HORRÍVEL que eu já li em Português...
   Você está se apropriando (inapropriadamente ;-) do verbo "To  
Append" e aportuguesando, para dizer "acrescentar".
   Eu gosto de escrever e ler corretamente em qualquer língua (ou  
linguagem) que eu falo. Por isso, recomendo tomar cuidado.
   Muito da nossa imagem é o que a gente escreve, já que a maior  
parte das pessoas não nos conhece pessoalmente.

   Mesmo assim, eu entendi o que você quer fazer.

> eu faco assim
> my $input = "
> [% FOREACH id = dados %]
> ---------------------------------------------------------------------- 
> -----------
>  Valor: [% valor %]
> ---------------------------------------------------------------------- 
> -----------
> [% END %]";


   Não vou comentar nada sobre o teu template - eu espero que você  
saiba o que está fazendo.

> my $ref = { dados => \@dados, };
> my $t = Template->new;
>
> $t->process( \$input, $ref, $out ) or die $template->error();

   A solução para o seu problema é passar $out como referência:

   $t->process( \$input, $ref, \$out ) or die $t->error;

   Assim, você vai ter o texto processado em $out, e vai poder abrir  
o arquivo e acrescentar por sua conta:

   open my $FH, '+>', '/caminho/para/relatorio.txt'
       or die $!;
   print $FH $out;
   close $FH or die $!;

   Espero que isso ajude.
   Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}


_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm


 __________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070509/05696c6b/attachment.html 


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