Bom, acho que isto responde a minha pergunta <a href="http://blogs.perl.org/users/aevar_arnfjor_bjarmason/2010/02/moosexmethodsignatures-is-really-slow.html">http://blogs.perl.org/users/aevar_arnfjor_bjarmason/2010/02/moosexmethodsignatures-is-really-slow.html</a> <div>

<div><br></div><div>Não fiz teste de performance do Params::Validate contra um monte de 'if', mas já está de bom tamanho agora.</div></div><div><br></div><div>Solli Honorio</div><br><div class="gmail_quote">Em 21 de junho de 2012 13:43, Solli Honorio <span dir="ltr"><<a href="mailto:shonorio@gmail.com" target="_blank">shonorio@gmail.com</a>></span> escreveu:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Pessoal,<div><br></div><div>Este é apenas um compartilhamento de experiência que pode ser útil aos demais, sobre a minha frustação do perl não ter um try-catch de leitura simples e nativo. </div>

<div><br></div><div>Tenho observado que o Try::Tiny está sendo utilizado em vários módulos sérios e com grande utilização, em substituição ao eval{ ... } (já que apenas os letrados em perl entende isto).</div>
<div><br></div><div>As coisas estavam encaminhando bem, até que eu resolvi 'melhorar o meu código' e passei a ter uma coisa do tipo : </div><div><br></div><div><code></div><div><div><font face="courier new, monospace">use Try::Tiny;</font></div>


<div><font face="courier new, monospace">use Params::Validate qw(:all);</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">sub foo {</font></div><div><font face="courier new, monospace">  my $self  = shift;</font></div>


<div><font face="courier new, monospace">  my $param = try { validate(@_, { name => { SCALAR } } ) } catch { ... };</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">    ...</font></div>


<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">}</font></div></div><div></code></div><div><br></div><div>E aí todos os meus teste falharam, depois de algumas análise descobri (sem muita surpresa) que o try { } localiza o @_ (claro, isto é um função qualquer) e  com valor inválido. Este problema eu não tenho com o eval { }. </div>


<div><br></div><div>Bom, eu ainda vou continuar a utilizar o Try::Tiny, por enquanto, mas é neste momento que a gente percebe que estes 'quebra-galho' no perl é chato !</div><span class="HOEnZb"><font color="#888888"><div>

<br></div><div>Solli Honorio</div>
<div><br></div><div><br></div><div>-- <br>"o animal satisfeito dorme". - Guimarães Rosa<br>
</div>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>"o animal satisfeito dorme". - Guimarães Rosa<br>