André,<div><br></div><div>Faz tempo que não brinco com Perl, mas se a memória não falha, existiriam dois motivos legítimos para utilizar um parâmetro por referência (que é o que o \@_ representa, uma referência para o @_):</div>
<div><br></div><div>1. Modificar os valores originais, já que o comportamento padrão de Perl é passagem por valor e não por referência, ou</div><div>2. Evitar a cópia dos valores dos parâmetros (nesse caso seria mais uma otimização do que uma necessidade)</div>
<div><br></div><div>Como dizem os americanos, I might be putting my foot in my mouth, mas acho que seria isso. Para mais detalhes sobre o uso de referências em Perl, 'perldoc perlref'.</div><div><br></div><div>[]'s</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">2012/12/3 Andre Carneiro <span dir="ltr"><<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Boa noite!</div><div><br></div><div><br></div><div>Estou fazendo uma pesquisa sobre validação de parâmetros em métodos, para módulos que utilizam Moose. Encontrei a seguinte solução abaixo:</div><div><br></div><div><br>

</div><div><br></div><div><a href="http://search.cpan.org/~drolsky/MooseX-Params-Validate-0.16/lib/MooseX/Params/Validate.pm" target="_blank">http://search.cpan.org/~drolsky/MooseX-Params-Validate-0.16/lib/MooseX/Params/Validate.pm</a></div>

<div><br></div><div><br></div><div><br></div><div>No entanto, tem um detalhe que eu não compreendi. Porque eu preciso passar \@_ para o método 'validated_list' ?</div><div><br></div><div>Dei uma olhada no código, e vi que ele utiliza o primeiro parâmetro que é chamado de '$args' dentro do método e existe um algoritmo que faz uma série de verificações nessa variável e depois envia para validate_with, através do módulo Params::Validate. Lá descobri que 'validate_with' é um 'símbolo' que é interpretado como uma sub por um outro método, enfim... Tem alguém por aqui capaz de me ajudar a entender esta "bagunça" e, principalmente, porque do \@_ ?? </div>

<div><br></div><div><br></div><div>OBS: Antes de qualquer troll me interpretar mal, repare que coloquei 'bagunça' entre aspas, o que significa que não acho que isso realmente seja uma bagunça. Por favor, evitem comentários inúteis em cima disso! Já me considero velho e sem saco pra flames...  ;-)</div>

<div><br></div><div><br></div><div>Obrigado!</div><span class="HOEnZb"><font color="#888888"><div><br></div><div><br></div><br clear="all"><div><br></div>-- <br>André Garcia Carneiro<br>Software Engineer<br><a href="tel:%2811%29982907780" value="+5511982907780" target="_blank">(11)982907780</a><br>

</font></span><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><br clear="all"><div><br></div>-- <br>“If debugging is the process of removing software bugs, then programming must be the process of putting them in.” - Edsger Dijkstra<br>
</div>