[Cascavel-pm] Parametros por referência

Fernando Oliveira fernandocorrea em gmail.com
Segunda Julho 27 07:38:58 PDT 2009


na verdade eu queria dizer isso:

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


2009/7/27 Fernando Oliveira <fernandocorrea em gmail.com>

> 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
>



-- 
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/f256873f/attachment-0001.html>


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