[Cascavel-pm] Parametros por referência

Giuliani Deon Sanches giulianisanches em gmail.com
Segunda Julho 27 07:45:19 PDT 2009


2009/7/27 Fernando Oliveira <fernandocorrea em gmail.com>:
> 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
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>

Exato... porém usando apenas push, pop e shift, while e/ou foreach :D

Mas não mostra mais nenhum exemplo, xo me quebrar um pouco senão não
pego o jeito.

Muito obrigado pelas dicas :)

-- 
twitter.com/giulianisanches
giulianisanches.blogspot.com


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