[SP-pm] Array? Hashes? Outros?

Eden Cardim eden at insoli.de
Wed Mar 13 10:43:21 PDT 2013


>>>>> "Marcio" == Marcio  <- Google <marciorp em gmail.com>> writes:

    Marcio> Na ordenação eu empaquei. O código não dá erro, mais não
    Marcio> ordena. Alguma dica? Pesquisei na net, mais não consegui
    Marcio> mesmo.

Provavelmente tem a ver com ordenação por string (invés de numérica).
Nesse caso, você precisa converter as strings em números de alguma
forma, e depois ordenar, geralmente se usa uma técnica conhecida como
"schwartzian transform":

my @chaves_ordenadas =
  map  { $_->[0] }              # converte de volta pro valor original
  sort { $a->[1] <=> $b->[1] }  # compara usando a parte numérica
  map  { [$_, /(\d+)/] }        # pra cada chave, criar um array com 2 elementos:
                                # $_->[0] contém o valor original
                                # $_->[1] contém o valor numérico
  keys %registros;

my @registros_ordenados
  = @registros{@chaves_ordenadas}; # retorna os registros na ordem das chaves

-- 
Eden Cardim -- Insolide Soluções de TI Ltda.
+55 11 9644 8225
http://insoli.de


More information about the SaoPaulo-pm mailing list