[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