[Cascavel-pm] Parametros por referência

Fernando Oliveira fernandocorrea em gmail.com
Segunda Julho 27 07:37:39 PDT 2009


isso?

sub rev {
   @_ = @_[map{-$_} 1 .. @_]
}
print rev(1 .. 10), $/;


2009/7/27 Giuliani Deon Sanches <giulianisanches em gmail.com>

> 2009/7/27 Fernando Oliveira <fernandocorrea em gmail.com>:
> > Giuliani, foi exatamente o q eu fiz...
> > dá uma olhada na func rev da minha resposta...
> >
> > 2009/7/27 Giuliani Deon Sanches <giulianisanches em gmail.com>
> >>
> >> 2009/7/27 Eden Cardim <edencardim em gmail.com>:
> >> > 2009/7/27 Fernando Oliveira <fernandocorrea em gmail.com>:
> >> >> fernando em fernando-laptop:~$ perl -e '
> >> >> sub rev {
> >> >>    @_ = reverse @_;
> >> >> }
> >> >>
> >> >> @lista = qw/1 2 3/;
> >> >> print rev(@lista), $/;
> >> >> '
> >> >> 321
> >> >
> >> > Na verdade, pra mostrar a passagem por referência em ação, teria que
> >> > ser algo assim:
> >> >
> >> > perl -le'my @list = qw(1 2 3); sub rev { @_[0.. em _-1] = reverse @_ }
> >> > rev(@list); print @list'
> >> >
> >> > no caso, a atribuição prum slice de @_ preserva o aliasing pros
> >> > elementos de @list, enquanto que uma atribuição pra @_ sobrescreve a
> >> > lista que está em @_, destruindo os aliases.
> >> >
> >> > --
> >> >   Eden Cardim       Need help with your Catalyst or DBIx::Class
> project?
> >> >  Code Monkey                    http://www.shadowcat.co.uk/catalyst/
> >> >  Shadowcat Systems Ltd.  Want a managed development or deployment
> >> > platform?
> >> > http://edenc.vox.com/            http://www.shadowcat.co.uk/servers/
> >> > _______________________________________________
> >> > Cascavel-pm mailing list
> >> > Cascavel-pm em pm.org
> >> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >> >
> >>
> >> Err.. apesar de minha linguagem principal de programação ser object
> >> pascal, o conceito de "invocar um método" é igual XD :P
> >>
> >> @Fernando eu conheço a função reverse eu só estava tentando
> >> implementar algo igual a titulo de exercício.
> >>
> >> Eu vou verificar o que eu fiz de errado a noite, pois pelo discutido
> >> aqui, a regra é clara: a cagada é minha :D
> >>
> >> []'s e grato pela atenção.
> >>
> >> --
> >> twitter.com/giulianisanches
> >> giulianisanches.blogspot.com
> >> _______________________________________________
> >> Cascavel-pm mailing list
> >> Cascavel-pm em pm.org
> >> http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> >
> >
> > --
> > Just another Perl Hacker,
> > Fernando (SmokeMachine)
> > http://perl-e.org
> >
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
>
> Eu vi sim. Mas meu objetivo não é usar a reverse e sim criar um código
> que faça o mesmo que ela a título de exercício apenas. ;)
>
> --
> twitter.com/giulianisanches
> giulianisanches.blogspot.com
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Just another Perl Hacker,
Fernando (SmokeMachine)
http://perl-e.org
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20090727/559d2dd8/attachment.html>


Mais detalhes sobre a lista de discussão Cascavel-pm