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 <[email protected]> > 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 <[email protected]> > >> 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 <[email protected]> >> >>> 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: [email protected] >>> 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: [email protected] >> 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: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
