<div dir="ltr">Mas se você estiver carente, adote o autor também :)</div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/9/3 Nuba Princigalli <span dir="ltr"><<a href="mailto:nuba@fastmail.fm" target="_blank">nuba@fastmail.fm</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>




<div><div>faz um fork E um release! se você curte o módulo e o autor tiver abandonado, você pode tentar adotá-lo, também -- o módulo, não o autor! ;)<br></div><div><div class="h5">
<div> </div>
<div> </div>
<div>On Tue, Sep 3, 2013, at 01:02 PM, Tiago Peczenyj wrote:<br></div>
</div></div><blockquote type="cite"><div dir="ltr">faz um fork.<br></div>
<div><div> </div>
<div> </div>
<div><div>2013/9/3 Renato Santos <span dir="ltr"><<a href="mailto:renato.cron@gmail.com" target="_blank">renato.cron@gmail.com</a>></span><br></div>
<div> </div>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Eu pessoalmente não gosto 100% do data-verifier.<div> </div>
<div>Ele tem dois 'bugs' que enchem o saco:<br></div>
<div> </div>
<div><a href="https://github.com/gphat/data-verifier/issues/9" target="_blank">https://github.com/gphat/data-verifier/issues/9</a>

<br></div>
<div> </div>
<div>e o cara nunca responde.<br></div>
<div> </div>
<div>Falta uma flag para dizer se o valor '' é pra ser valido ou virar undef. <br></div>
<div> </div>
<div>em caso de ints, num, booleans, faz sentido considerar '' como sendo undef, porém, textos podem ser vazios!<br></div>
<div> </div>
<div> </div>
<div>Sobre a questão das mensagens, também seria legal poder pegar o motivo do erro.. podia ser um die dentro do post_check e capturar isso.<br></div>
<div> </div>
<div>ai depois seria crair só outro Data::ManagerFoo que saiba tratar os Data::VerifierFoo<br></div>
<div> </div>
</div>
</div></div><div><div><div><div> </div>
<div> </div>
<div><div>2013/9/3 Solli Honorio <span dir="ltr"><<a href="mailto:shonorio@gmail.com" target="_blank">shonorio@gmail.com</a>></span><br></div>
<div> </div>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Lucas,<div> </div>
<div>Obrigado pelo retorno. Ontem a noite estudei o código do Data::Manager e ví que realmente não rola fazer o que eu estava querendo fazer (passar uma pilha de mensagem e receber de acordo com o contexto) e ai estou encaminhando para a mesma solução que você.<br>

</div>
<div> </div>
<div>Como vc faz com o <span style="font-family:arial,sans-serif"><span style="font-size:13px">I18N ?</span></span><br></div>
<div> </div>
<div><span style="font-family:arial,sans-serif"><span style="font-size:13px">O Renato Cron publicou um 'template'  ( </span></span><span style="font-family:arial,sans-serif"><a href="https://github.com/AwareTI/MyApp" target="_blank">https://github.com/AwareTI/MyApp</a> ) </span><span style="font-family:arial,sans-serif"><span style="font-size:13px">de como eles estão utilizando o Data::Manager. Estudei o código e achei engenhoso, mas ainda quero manter um melhor controle do ResultSet porquê quero devolver uma estrutura mais complexa de informação.</span></span><br>

</div>
<div> </div>
<div><span style="font-family:arial,sans-serif"><span style="font-size:13px">Abraços,</span></span><br></div>
<div> </div>
<div><span style="font-family:arial,sans-serif"><span style="font-size:13px">Solli Honorio</span></span><br></div>
<div> </div>
</div>
</div></div><div><div><div><div> </div>
<div> </div>
<div> </div>
<div><div>2013/9/3 Lucas Oliveira <span dir="ltr"><<a href="mailto:lucasmateus.oliveira@gmail.com" target="_blank">lucasmateus.oliveira@gmail.com</a>></span><br></div>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div class="h5"><div> </div>
<div><span style="white-space:pre-wrap"></span>Normalmente eu uso sempre com I18N mas da pra quebrar o galho assim<br></div>
<div> </div>
<div><code><br></div>
</div></div><div><div><div class="h5"><div><div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(194,27,45)">#!/usr/bin/env perl<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"> </div>
<div style="margin:0px;font-size:11px;font-family:Monaco">





<span style="color:rgb(178,69,243)">use </span>common::sense<span style="color:rgb(193,53,0)">;</span><br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco"><span style="color:rgb(178,69,243)">use </span>Data::Manager<span style="color:rgb(193,53,0)">;</span><br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco"><span style="color:rgb(178,69,243)">use </span>Data::Verifier<span style="color:rgb(193,53,0)">;</span><br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"> </div>
</div>
</div></div><div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(178,55,243)"><span style="color:rgb(178,69,243)">my </span><span style="color:rgb(0,0,0)">%</span>msg_data<span style="color:rgb(0,0,0)"></span><span style="color:rgb(193,53,0)">= (</span><br>

</div><div><div class="h5">
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(4,51,255)"><span style="color:rgb(193,53,0)"></span><span style="color:rgb(0,0,0)">missing_name_last </span><span style="color:rgb(193,53,0)">=> </span>'Nao foi informado o campo name_last, seu idiota !'<span style="color:rgb(193,53,0)">,</span><br>

</div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">);<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"> </div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">





<span style="color:rgb(178,69,243)">sub </span><span style="color:rgb(0,0,0)">messages </span>{ <span style="color:rgb(0,0,0)">$</span><span style="color:rgb(178,55,243)">msg_data</span>{<span style="color:rgb(0,0,0)">$</span><span style="color:rgb(178,55,243)">_</span>[<span style="color:rgb(178,49,0)">0</span>]} || <span style="color:rgb(0,0,0)">$</span><span style="color:rgb(178,55,243)">_</span>[<span style="color:rgb(178,49,0)">0</span>] }<br>

</div>
<div style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"> </div>
<div style="margin:0px;font-size:11px;font-family:Monaco"><span style="color:rgb(178,69,243)">my </span>$<span style="color:rgb(178,55,243)">dm</span> <span style="color:rgb(193,53,0)">= </span>Data::Manager<span style="color:rgb(193,53,0)">-></span><span style="color:rgb(178,69,243)">new</span><span style="color:rgb(193,53,0)">;</span><br>

</div>
<div><div style="margin:0px;font-size:11px;font-family:Monaco"><span style="color:rgb(178,69,243)">my </span>$<span style="color:rgb(178,55,243)">dv</span> <span style="color:rgb(193,53,0)">= </span>Data::Verifier<span style="color:rgb(193,53,0)">-></span><span style="color:rgb(178,69,243)">new</span><span style="color:rgb(193,53,0)">(</span><br>

</div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">    <span style="color:rgb(0,0,0)">filters </span>=> [ <span style="color:rgb(178,69,243)">qw(trim) </span>],<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">





        <span style="color:rgb(0,0,0)">profile </span>=> {<br></div>
</div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">            <span style="color:rgb(0,0,0)">name_first </span>=> {<br></div>
<div><div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">                <span style="color:rgb(0,0,0)">required </span>=> <span style="color:rgb(178,49,0)">1</span>,<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">





                <span style="color:rgb(0,0,0)">type     </span>=> <span style="color:rgb(4,51,255)">'Str'</span>,<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">                <span style="color:rgb(0,0,0)">filters  </span>=> [ <span style="color:rgb(178,69,243)">qw(collapse) </span>]<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">            },<br></div>
</div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">            <span style="color:rgb(0,0,0)">name_last </span>=> {<br></div>
<div><div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">                <span style="color:rgb(0,0,0)">required </span>=> <span style="color:rgb(178,49,0)">1</span>,<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">





                <span style="color:rgb(0,0,0)">type     </span>=> <span style="color:rgb(4,51,255)">'Str'</span>,<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">                <span style="color:rgb(0,0,0)">filters  </span>=> [ <span style="color:rgb(178,69,243)">qw(collapse) </span>]<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">            },<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">            <span style="color:rgb(0,0,0)">age  </span>=> {<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">                <span style="color:rgb(0,0,0)">type        </span>=> <span style="color:rgb(4,51,255)">'Int'</span><br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(4,51,255)">





            <span style="color:rgb(193,53,0)">},</span><br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">            <span style="color:rgb(0,0,0)">sign </span>=> {<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">





                <span style="color:rgb(0,0,0)">required    </span>=> <span style="color:rgb(178,49,0)">1</span>,<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">                <span style="color:rgb(0,0,0)">type        </span>=> <span style="color:rgb(4,51,255)">'Str'</span><br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(4,51,255)">            <span style="color:rgb(193,53,0)">}</span><br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">        }<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">    );<br></div>
<div style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"> </div>
</div>
<div style="margin:0px;font-size:11px;font-family:Monaco">





$<span style="color:rgb(178,55,243)">dm</span><span style="color:rgb(193,53,0)">-></span>set_verifier<span style="color:rgb(193,53,0)">( </span>name <span style="color:rgb(193,53,0)">=> </span>$<span style="color:rgb(178,55,243)">dv</span> <span style="color:rgb(193,53,0)">);</span><br>

</div>
<div style="margin:0px;font-size:11px;font-family:Monaco">$<span style="color:rgb(178,55,243)">dm</span><span style="color:rgb(193,53,0)">-></span>verify<span style="color:rgb(193,53,0)">( </span>name <span style="color:rgb(193,53,0)">=> { </span>name_first <span style="color:rgb(193,53,0)">=> </span><span style="color:rgb(4,51,255)">'Solli' </span><span style="color:rgb(193,53,0)">});</span><br>

</div>
<div style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"> </div>
<div style="margin:0px;font-size:11px;font-family:Monaco"><span style="color:rgb(178,69,243)">if </span><span style="color:rgb(193,53,0)">(</span>!$<span style="color:rgb(178,55,243)">dm</span><span style="color:rgb(193,53,0)">-></span>success<span style="color:rgb(193,53,0)">) {</span><br>

</div>
<div style="margin:0px;font-size:11px;font-family:Monaco"><span style="color:rgb(193,53,0)"></span><span style="color:rgb(178,55,243)">print </span>&messages<span style="color:rgb(193,53,0)">( </span>$<span style="color:rgb(178,55,243)">_</span><span style="color:rgb(193,53,0)">-></span>msgid <span style="color:rgb(193,53,0)">).</span>$<span style="color:rgb(178,55,243)">/</span><br>

</div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(178,55,243)">      <span style="color:rgb(178,69,243)">foreach </span><span style="color:rgb(193,53,0)">(</span><span style="color:rgb(0,0,0)">@</span>{ $dm->messages->messages }<span style="color:rgb(193,53,0)">);</span><br>

</div>
<div style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">}<br></div>
</div></div></div><div><div class="h5">
<div></code><br></div>
<div> </div>
<div> </div>
<div><div>Em 02/09/2013, às 11:10, Solli Honorio <<a href="mailto:shonorio@gmail.com" target="_blank">shonorio@gmail.com</a>> escreveu:<br></div>
<div> </div>
<blockquote type="cite"><div><div><div dir="ltr">Pessoal,<div> </div>
<div>Estou tentando configurar uma mensagem padronização no Data::Manager, mas não está funcionando. Alguém aqui já utilizou o Data::Manager para saber se é possível fazer isto que eu quero ?<br></div>
<div> </div>
<div>O código abaixo, estou criando uma mensagem e adicionando no Data::Manger, porquê eu imaginei que quando ocorrer o problema dentro do escopo e msgid, eu teria o texto padronizado, mas o que estou recebendo é mais uma pilha de mensagem, mesmo quando não existe o erro.<br>

</div>
<div> </div>
<div><code><br></div>
<div><div><span style="font-family:'courier new',' monospace'">#!/usr/bin/env perl</span><br></div>
<div><span style="font-family:'courier new',' monospace'">use common::sense;</span><br></div>
<div><span style="font-family:'courier new',' monospace'">use Data::Manager;</span><br></div>
<div><span style="font-family:'courier new',' monospace'">use Data::Verifier;</span><br></div>
<div><span style="font-family:'courier new',' monospace'">use Data::Printer;</span><br></div>
<div> </div>
<div><span style="font-family:'courier new',' monospace'">my $msg = Message::Stack->new;</span><br></div>
<div><span style="font-family:'courier new',' monospace'">$msg->add({</span><br></div>
<div><span style="font-family:'courier new',' monospace'">    msgid   => 'missing_name_last',</span><br></div>
<div><span style="font-family:'courier new',' monospace'">    level   => 'error',</span><br></div>
<div><span style="font-family:'courier new',' monospace'">    scope   => 'name1',</span><br></div>
<div><span style="font-family:'courier new',' monospace'">    subject => 'name_last',</span><br></div>
<div><span style="font-family:'courier new',' monospace'">    text    => 'Não foi informado o campo name_last, seu idiota !'} );</span><br></div>
<div> </div>
<div><span style="font-family:'courier new',' monospace'">my $dm = Data::Manager->new( { messages => $msg } );</span><br></div>
<div><span style="font-family:'courier new',' monospace'">my $dv = Data::Verifier->new(</span><br></div>
<div><span style="font-family:'courier new',' monospace'">    filters => [ qw(trim) ],</span><br></div>
<div><span style="font-family:'courier new',' monospace'">        profile => {</span><br></div>
<div><span style="font-family:'courier new',' monospace'">            name => {</span><br></div>
<div><span style="font-family:'courier new',' monospace'">                required => 1,</span><br></div>
<div><span style="font-family:'courier new',' monospace'">                type     => 'Str',</span><br></div>
<div><span style="font-family:'courier new',' monospace'">                filters  => [ qw(collapse) ]</span><br></div>
<div><span style="font-family:'courier new',' monospace'">            },</span><br></div>
<div><span style="font-family:'courier new',' monospace'">            age  => {</span><br></div>
<div><span style="font-family:'courier new',' monospace'">                type        => 'Int'</span><br></div>
<div><span style="font-family:'courier new',' monospace'">            },</span><br></div>
<div><span style="font-family:'courier new',' monospace'">            sign => {</span><br></div>
<div><span style="font-family:'courier new',' monospace'">                required    => 1,</span><br></div>
<div><span style="font-family:'courier new',' monospace'">                type        => 'Str'</span><br></div>
<div><span style="font-family:'courier new',' monospace'">            }</span><br></div>
<div><span style="font-family:'courier new',' monospace'">        }</span><br></div>
<div><span style="font-family:'courier new',' monospace'">    );</span><br></div>
</div>
<div> </div>
<div><pre style="font-size:12px;margin-top:0px;margin-bottom:0px;color:rgb(51,51,51);line-height:18px"><div style="padding-left:10px"><span><span style="font-family:'courier new',' monospace'">};</span></span><br>

</div>
</pre></div>
<div> </div>
<div><div><span style="font-family:'courier new',' monospace'">$dm->set_verifier('name1', $verifier);</span><br></div>
<div><span style="font-family:'courier new',' monospace'">$dm->verify('name1', { name_last => 'Honorio', name_first => 'Solli' });</span><br></div>
<div> </div>
<div>







<span style="font-family:'courier new',' monospace'">my $results = $dm->get_results('name1');</span><br></div>
<div><span style="font-family:'courier new',' monospace'">my $stack   = $dm->messages_for_scope('name1');</span><br></div>
<div> </div>
<div><span style="font-family:'courier new',' monospace'">say $results->success;</span><br></div>
<div> </div>
<div><span style="font-family:'courier new',' monospace'">say "Is invalid name_first ", $results->is_invalid('name_first');</span><br></div>
<div><span style="font-family:'courier new',' monospace'">say "Is invalid name_last ",  $results->is_invalid('name_last');  # yes</span><br></div>
<div> </div>
<div><span style="font-family:'courier new',' monospace'">say "Is missing name_first ", $results->is_missing('name_first'); # no</span><br></div>
<div><span style="font-family:'courier new',' monospace'">say "Is missing is_missing ", $results->is_missing('name_last'); # yes</span><br></div>
<div> </div>
<div><span style="font-family:'courier new',' monospace'">say "Missing count ", $results->missing_count;</span><br></div>
<div> </div>
<div><span style="font-family:'courier new',' monospace'">say "Count : ",  $stack->count ;</span><br></div>
<div><span style="font-family:'courier new',' monospace'">p $stack->get_message( 0 );</span><br></div>
<div><span style="font-family:'courier new',' monospace'">p $stack->get_message( 1 );</span><br></div>
</div>
<div> </div>
<div></code><br></div>
<div> </div>
<div><div> </div>
<div>-- <br></div>
<div>"o animal satisfeito dorme". - Guimarães Rosa
<br></div>
</div>
</div>
</div>
</div>
<div>
=begin disclaimer<br></div>
<div>   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br></div>
<div> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br></div>
<div>





 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br></div>
<div>=end disclaimer<br></div>
</blockquote></div>
<div> </div>
</div></div></div><div><div class="h5">
<div> </div>
<div>=begin disclaimer<br></div>
<div>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br></div>
<div>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br></div>
<div>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br></div>
<div>
=end disclaimer<br></div>
<div> </div>
</div></div></blockquote></div><div><div class="h5">
<div> </div>
<div> </div>
<div> </div>
<div>-- <br></div>
<div>"o animal satisfeito dorme". - Guimarães Rosa
<br></div>
</div></div></div>
</div>
</div><div><div class="h5">
<div> </div>
<div>=begin disclaimer<br></div>
<div>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br></div>
<div>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br></div>
<div>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br></div>
<div>
=end disclaimer<br></div>
<div> </div>
</div></div></blockquote></div>
<div> </div>
<div> </div>
<div> </div>
<div>-- <br></div>
</div>
</div><div><div class="h5">
<div><span style="color:rgb(51,51,51)"><span style="font-size:x-small">Saravá,</span></span><br></div>
<div><span style="color:rgb(51,51,51)"><span style="font-size:x-small">Renato CRON</span></span><br></div>
<div><div style="text-align:right"><span style="color:rgb(51,51,51)"><span style="font-size:x-small"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></span></span><br></div>
</div>
<div style="text-align:right"><span style="color:rgb(51,51,51)"><span style="font-size:x-small"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></span></span><br></div>
</div></div></div><div><div class="h5">
<div> </div>
<div>=begin disclaimer<br></div>
<div>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br></div>
<div>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br></div>
<div>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br></div>
<div>
=end disclaimer<br></div>
<div> </div>
</div></div></blockquote></div><div><div class="h5">
<div> </div>
<div> </div>
<div> </div>
<div>-- <br></div>
<div>Tiago B. Peczenyj<br></div>
<div>Linux User #405772<br></div>
<div> </div>
<div><a href="http://about.me/peczenyj" target="_blank">http://about.me/peczenyj</a>
<br></div>
</div></div></div><div><div class="h5">
<div>=begin disclaimer<br></div>
<div>   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br></div>
<div> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br></div>
<div> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br></div>
<div>=end disclaimer<br></div>
</div></div></blockquote><div> </div>
<div><div>--<br></div>
<div>Nuba R. Princigalli  <a href="mailto:nuba@pauleira.com" target="_blank">nuba@pauleira.com</a>  <a href="http://pauleira.com" target="_blank">http://pauleira.com</a>  @nprincigalli<br></div>
<div>Discipline is not an end in itself, just a means to an end. - King Crimson<br></div>
<div> </div>
</div>
</div>

<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div>