Hummm... acho que entendi... na verdade \@_ tem as referências para: $foo, $baz e $gorch. Os outros parâmetros são apenas a especificação de como eu quero que esses dados sejam validados, é isso?<div><br></div><div>Se for assim, em 'teoria', eu poderia fazer isso de uma outra forma:</div>
<div><br></div><div><code></div><div><br></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><div>sub bar {</div><div>    my $self = shift;</div>
<div>    my @Values_to_validate = ('val1','val2','val3');</div><div>    my ( $foo, $baz, $gorch ) = validated_list(</div><div>        \@Values_to_validate,</div><div>        foo   => { isa => 'Foo' },</div>
<div>        baz   => { isa => 'ArrayRef | HashRef', optional => 1 },</div><div>        gorch => { isa => 'ArrayRef[Int]', optional => 1 }</div><div>    );</div><div>    [ $foo, $baz, $gorch ];</div>
<div>}</div><div><br></div></div></div><div></code></div><div><br></div><div><br></div><div>Correto?</div><div><br></div><div><br></div><div>Cheers!</div><div><br></div><div><br></div><div><br><div><br><div class="gmail_quote">
2012/12/4 Eden Cardim <span dir="ltr"><<a href="mailto:eden@insoli.de" target="_blank">eden@insoli.de</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The following message is a courtesy copy of an article<br>
that has been posted to gmane.comp.lang.perl.perl-mongers.saopaulo as well.<br>
<br>
>>>>> "Andre" == Andre Carneiro <<a href="mailto:andregarciacarneiro-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org">andregarciacarneiro-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org</a>> writes:<br>
<br>
    Andre> Hummm... acho que fui vago demais!  Vamos ver se consigo me<br>
    Andre> expressar melhor...<br>
<br>
    Andre> A pergunta é a seguinte: tudo o que eu passo de útil para o<br>
    Andre> método ' validated_list' não tem nada a ver com \@_. Então<br>
    Andre> por que eu preciso passar isso como referência? Referência<br>
    Andre> de que?<br>
<br>
    Andre> Mesmo olhando o código do módulo, não consegui entender<br>
    Andre> direito o que ele leva nessa referência, e ainda por cima,<br>
    Andre> o método é estático! Que diabos tem dentro desse \@_ ? E<br>
    Andre> como isso vai parar lá, já que não tem instância nenhuma do<br>
    Andre> módulo, só um 'use'...(método estático, tá<br>
    Andre> ligado?). Desconfio que a resposta tenha a ver com o 'use',<br>
    Andre> mas não tenho certeza.<br>
<br>
Observe que a assinatura do método é validated_hash($argumentos,%especificacao).<br>
<br>
O único motivo pelo qual você precisa passar o @_ por referência é pra<br>
não misturar os argumentos com a especificação, que vem depois.<br>
<div class="im"><br>
--<br>
Eden Cardim -- Insolide Soluções de TI Ltda.<br>
</div><a href="tel:%2B55%2011%209644%208225" value="+551196448225">+55 11 9644 8225</a><br>
<a href="http://insoli.de" target="_blank">http://insoli.de</a><br>
<div class="HOEnZb"><div class="h5">=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>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>André Garcia Carneiro<br>Software Engineer<br>(11)982907780<br>
</div></div>