[SP-pm] sort
Thomas Britis
thomas em tcnet.com.br
Terça Janeiro 23 10:58:59 PST 2007
Eden,
Obrigado pela resposta.
Porém, o uso do %ENV foi apenas exemplificativo. O que acontece na
prática é o seguinte:
Eu tenho um programa que carrega as informações em um hash da seguinte
forma:
$hash[$count] = ({ campo => valor });
E, é claro que tenho diversos campos e diversos valores para cada campo.
O que quero é ordenar por um dos campos existentes.
Hoje, o que eu faço é:
$campo{$count} = $valor;
@result = sort { $campo{$a} cmp $campo{$b} } keys %campo;
e depois de fazer o sort eu gero novamente a hash, porém considero isso
uma perda de tempo pois o resultado, como vc mesmo disse, é uma array.
Preciso então comparar o resultado com o valor na hash e ordenar.
Imagino que deva haver maneira de se fazer isso de forma mais simples.
Será que me fiz claro ou ainda está confuso?
Mais uma vez, muito obrigado.
Eden Cardim wrote:
> On 1/23/07, Eden Cardim <edencardim em gmail.com> wrote:
>
> Ooops, a primeira versão anterior está errada, eis a versao corrigida
> (mas ainda sem testar :)):
>
> my @sorted =
> map { @$_[0, 1] }
> sort { $a->[1] <=> $b->[1] }
> map { [$_, $ENV{$_}] }
> keys %ENV;
>
> while( my($key, $value) = each @sorted) {
> print "Nome: $key\tValor: $value, "\n";
> }
>
--
Thomas Storino Britis
TCNet Informatica e Telecomunicacoes LTDA
Mais detalhes sobre a lista de discussão SaoPaulo-pm