Critério Hash de ordenação [RESOLVIDO]

1. Critério Hash de ordenação [RESOLVIDO]

PP
ppvol

(usa Ubuntu)

Enviado em 23/03/2010 - 12:04h

Olá,

não consigo entender o critério das chaves em %hash, executem o script abaixo e verão oque estou dizendo... a pergunta é:

1 - não deveria ser impresso na ordem que estabeleci, codBarras, codLoja, codFabr...qtde ?
2 - porque ele imprime fora da minha ordem ?

**********************************
#!/usr/bin/perl
use strict;

my $campos = {
codBarras => ['código de barras','codBarras','15','13'],
codLoja => ['código da loja','codLoja','25','20'],
codFabr => ['código do fabricante','codFabr','25','20'],
descricao => ['descrição','descricao','45','40'],
custo => ['valor de custo','custo','13','11'],
venda => ['valor de venda','venda','13','11'],
qtde => ['quantidade','qtde','13','11']
};

foreach my $k(keys %$campos){
print $k."\n";
}
*******************************

obrigado.



  


2. MELHOR RESPOSTA

net
netsoul

(usa Debian)

Enviado em 23/03/2010 - 23:07h

Use o Tie::IxHash

*******************************
#!/usr/bin/perl
use strict;
use warnings;

use Tie::IxHash;

tie my %campos, 'Tie::IxHash', (

codBarras => ['código de barras','codBarras','15','13'],
codLoja => ['código da loja','codLoja','25','20'],
codFabr => ['código do fabricante','codFabr','25','20'],
descricao => ['descrição','descricao','45','40'],
custo => ['valor de custo','custo','13','11'],
venda => ['valor de venda','venda','13','11'],
qtde => ['quantidade','qtde','13','11']);

foreach my $k(keys %campos){
print $k."\n";
}
*******************************

3. Re: Critério Hash de ordenação [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 23/03/2010 - 14:14h

Tente usar a função 'sort'.

...

foreach my $k (sort(keys %campos)) { print $k."\n"; }




4. Re: Critério Hash de ordenação [RESOLVIDO]

PP
ppvol

(usa Ubuntu)

Enviado em 23/03/2010 - 15:38h

SMarcell, vc tá em todas hehe, muito bem...

bom vamos ao que interessa, já tinha feito isso mas não satisfaz a necessidade oq acontece é que criei um hash dessa forma que é exatamente a entrada de cada item que será mostrado no browser, precisa ser nessa ordem pq é uma página dinâmica.. por exemplo, se o cliente disser que o campo [qtde] tem q vir antes do custo então eu só altero a posição do hash e não preciso mexer no html.

se puder me ajudar a resolver isso, agradeço.

obrigado.


5. Re: Critério Hash de ordenação [RESOLVIDO]

PP
ppvol

(usa Ubuntu)

Enviado em 24/03/2010 - 07:53h

netsoul,

é essa a solução obrigado.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts