hm... se eu não me engano, tem como separar o @_ de uma função e restaurar o "@_::parent" de alguma forma, não me lembro exatamente como =(
Alguém aqui na lista deve saber! 2012/6/21 Solli Honorio <[email protected]> > Pessoal, > > 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. > > 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). > > As coisas estavam encaminhando bem, até que eu resolvi 'melhorar o meu > código' e passei a ter uma coisa do tipo : > > <code> > use Try::Tiny; > use Params::Validate qw(:all); > > sub foo { > my $self = shift; > my $param = try { validate(@_, { name => { SCALAR } } ) } catch { ... }; > > ... > > } > </code> > > 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 { }. > > 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 ! > > Solli Honorio > > > -- > "o animal satisfeito dorme". - Guimarães Rosa > > =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
