[SP-pm] Melhor forma para...

Tiago Peczenyj tiago.peczenyj at gmail.com
Tue Jul 16 08:22:35 PDT 2013


Sempre tem uma forma diferente:

https://gist.github.com/anonymous/6009717

não quer dizer que seja melhor ou pior, basta ver se é legivel ou não.

talvez o reduce seja ilegivel, mas se vc utilizar um map talvez fique
melhor.

vai do seu gosto


2013/7/16 Blabos de Blebe <blabos at gmail.com>

> Opa,
>
> Duas coisas. Na verdade três.
>
> Seu código tá até bem limpo, seguindo algumas boas práticas até.
>
> ...
>
> Mas pode melhorar :)
>
> Não use bareword para descritor de arquivo, use uma variável. Para lhe
> apontar a documentação correta "I summon garu".
>
> open my $fh, '<', 'filename.txt' or die 'Cannot open';
>
> Parêntesis em Perl são opcionais em alguns casos, sendo que usar ou não
> usar muitas vezes é questão de estilo. Em alguns outros casos são
> obrigatórios. Na dúvida, use.
>
> ...
>
> Para imprimir hash com elementos em ordem, eu gosto e usar *slice* ao
> invés de loop.
>
> my %hash = ( etc => 1, bar => 3, foo => 5)
> my @order = qw{ foo bar etc };
> my @ordered_values = @{hash}{ @order };  ## Slice. Chaves a mais de
> propósito.
> print join( ';', @ordered_values );
>
> Você pode usar o sort por chave:
> my @order = sort { $a cmp $b} keys %hash;
>
> Note que @order = sort { $a <=> $b} keys %hash;
> Não funciona.
>
> Ou a forma mais curta:
> @order = sort keys %hash;
>
> Ordenando por valor decrescente
> @order = sort { $hash{$b} <=> $hash{$a}} keys %hash;
>
> Novamente, @order = sort { $hash{$b} cmp $hash{$a}} keys %hash;
> Não funciona.
>
>
> ...
>
> Talvez, se o objetivo for só contar e mais nada, usar expressão regular
> pode ser mais rápido, mas como regexp está fora dos meus domínios então
> posso estar errado.
>
> Mede aí e depois conta...
>
>
> []'s
>
>
>
> 2013/7/15 Renato Santos <renato.cron at gmail.com>
>
>> Acredito que não há motivos para não utilizar o *for *nesse caso,
>>
>> até porque, não parece ter muitas outras soluções,
>>
>> se for pra deixar o codigo menor, ficará menos legivel. se for pra
>> aumentar a velocidade, você pode reescrever em alguma linguagem compilada,
>> tipo C, só que vai dar mais trabalho!
>>
>>
>> 2013/7/15 Rafael Silveira <dev.silveira at yahoo.com>
>>
>>>  Boa noite Renato.
>>>
>>> Na verdade, não importa não!
>>> Mas, eu gostaria de fazer da melhor forma possível, inclusive evitar
>>>  usar outro for.
>>> Estava pensando em fazer algo parecido, porém salvar num array, e mandar
>>> pro arquivo com um join(' ', $var).
>>>
>>> Mas mesmo assim utilizaria o for.
>>>
>>> Muito obrigado a todos! :D
>>>
>>> []'s
>>>
>>> =begin disclaimer
>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>  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: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130716/0f6beefd/attachment.html>


More information about the SaoPaulo-pm mailing list