Sim, e não tem 'na teoria', ta programado pra receber um scalar!
2012/12/4 Andre Carneiro <[email protected]> > 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? > > Se for assim, em 'teoria', eu poderia fazer isso de uma outra forma: > > <code> > > sub bar { > my $self = shift; > my @Values_to_validate = ('val1','val2','val3'); > my ( $foo, $baz, $gorch ) = validated_list( > \@Values_to_validate, > foo => { isa => 'Foo' }, > baz => { isa => 'ArrayRef | HashRef', optional => 1 }, > gorch => { isa => 'ArrayRef[Int]', optional => 1 } > ); > [ $foo, $baz, $gorch ]; > } > > </code> > > > Correto? > > > Cheers! > > > > > 2012/12/4 Eden Cardim <[email protected]> > >> The following message is a courtesy copy of an article >> that has been posted to gmane.comp.lang.perl.perl-mongers.saopaulo as >> well. >> >> >>>>> "Andre" == Andre Carneiro < >> [email protected]> writes: >> >> Andre> Hummm... acho que fui vago demais! Vamos ver se consigo me >> Andre> expressar melhor... >> >> Andre> A pergunta é a seguinte: tudo o que eu passo de útil para o >> Andre> método ' validated_list' não tem nada a ver com \@_. Então >> Andre> por que eu preciso passar isso como referência? Referência >> Andre> de que? >> >> Andre> Mesmo olhando o código do módulo, não consegui entender >> Andre> direito o que ele leva nessa referência, e ainda por cima, >> Andre> o método é estático! Que diabos tem dentro desse \@_ ? E >> Andre> como isso vai parar lá, já que não tem instância nenhuma do >> Andre> módulo, só um 'use'...(método estático, tá >> Andre> ligado?). Desconfio que a resposta tenha a ver com o 'use', >> Andre> mas não tenho certeza. >> >> Observe que a assinatura do método é >> validated_hash($argumentos,%especificacao). >> >> O único motivo pelo qual você precisa passar o @_ por referência é pra >> não misturar os argumentos com a especificação, que vem depois. >> >> -- >> Eden Cardim -- Insolide Soluções de TI Ltda. >> +55 11 9644 8225 >> http://insoli.de >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> > > > > -- > André Garcia Carneiro > Software Engineer > (11)982907780 > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron <http://twitter.com/#!/renato_cron>
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
