[Rio-pm] Função uniq com bug ou erro no codigo?

Fernando Oliveira fernandocorrea em gmail.com
Dom Mar 5 19:09:46 PST 2017



Enviado do meu iPhone

> Em 5 de mar de 2017, às 17:19, Gabriel Vieira <gabriel.vieira em gmail.com> escreveu:
> 
> GOLF?!!!!??!?!?! \o/
> 
> 
> NÃO RETORNA NECESSARIAMENTE NA ORDEM ENCONTRADA (76 chars)
> echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM"|perl -nE'@x{/\w+/g}++;say keys%x'
https://glot.io/snippets/enq3cdjqa5
> 
> MANTÉM A ORDEM (76 chars)
> echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM"|perl -nE'$x{$_}++||say for/\w+/g'
https://glot.io/snippets/enq3dys5ew
> 
> 2017-03-05 12:43 GMT-05:00 Aureliano Guedes <guedes_1000 em hotmail.com>:
>> Obrigado, era so o chomp mesmo.
>> 
>> Perl6 é interessante mas pra agora não seria ideal.
>> A solução com array seria a melhor talvez, mas ate tentei
>> 
>> 
>> echo "WXG+WXG+PT-COG5412+Tox-SHH+TM+TM+TM+TM" | perl -MDDP -nE 'foreach(split /\+/){$a{$_}++}; p %a'
>> 
>> 
>> Mas deu problema que fiquei com preguissa de tratar. saiu linha em branco e a ultima repetição.
>> 
>> Obrigado monges
>> 
>> 
>> 
>> From: Rio-pm <rio-pm-bounces+guedes_1000=hotmail.com em pm.org> on behalf of Fernando Oliveira <fernandocorrea em gmail.com>
>> Sent: Sunday, March 5, 2017 5:15:08 PM
>> To: Perl Mongers Rio de Janeiro
>> Subject: Re: [Rio-pm] Função uniq com bug ou erro no codigo?
>>  
>>>> echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | perl6 -n 'say set .split: "+"'
>> 
>> Enviado do meu iPhone
>> 
>> Em 5 de mar de 2017, às 13:59, Fernando Oliveira <fernandocorrea em gmail.com> escreveu:
>> 
>>> Eu não sei qual é o problema, mas tenho uma sugestão de solução (código não testado, tô no celular):
>>>> echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | perl -nE '%a{split "+"}++; say keys %a}'
>>> 
>>> Enviado do meu iPhone
>>> 
>>> Em 5 de mar de 2017, às 13:51, Lucas Mateus <lucasmateus.oliveira em gmail.com> escreveu:
>>> 
>>>> É algum bug no código
>>>> 
>>>> echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | xargs perl -MList::Util=uniq -MDDP -e '@a=uniq(split(/\+/,$ARGV[0]));p @a'
>>>> 
>>>> Em 5 de março de 2017 13:35, Aureliano Guedes <guedes_1000 em hotmail.com> escreveu:
>>>>> Ola,
>>>>> 
>>>>> Caros Monges.
>>>>> 
>>>>> Estou com uma pequena dúvida.
>>>>> Estou usando a função uniq (List::Util e List::MoreUtils) para reduzir a redundância de um array.
>>>>> 
>>>>> 
>>>>> echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | perl -MList::Util='uniq' -MDDP -ne '@a = uniq (split (/\+/, $_)); print "\n"; p @a; print "\n"'
>>>>> 
>>>>> 
>>>>> Separa os elementos pelo '+' e depois remove a redundância. Acontece que o ultimo elemento for redundante ele não é eliminado.
>>>>> 
>>>>> Alguém sabe o porque disso??
>>>>> 
>>>>> Alguma sujestão de como reverter sem q eu tenha que criar um script pra isso ou minha propria rotina uniq??
>>>>> 
>>>>> Desde já grato.
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> Rio-pm mailing list
>>>>> Rio-pm em pm.org
>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>> 
>>>> _______________________________________________
>>>> Rio-pm mailing list
>>>> Rio-pm em pm.org
>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>> 
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
> 
> 
> 
> -- 
> Gabriel Vieira
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20170306/071cf0db/attachment-0001.html>


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