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><div><br></div><div>Solli Honorio</div>

<div><br></div><div><br></div><div>-- <br>"o animal satisfeito dorme". - Guimarães Rosa<br>
</div>