[Madrid-pm] una de hash

Salvador Fandino sfandino en yahoo.com
Sab Ene 26 01:38:37 PST 2008



----- Original Message ----
> From: DervishD <bugs en dervishd.net>
> To: Lista de correo de Madrid Perl Mongers <madrid-pm en pm.org>
> Sent: Saturday, January 26, 2008 10:13:56 AM
> Subject: Re: [Madrid-pm] una de hash
> 
> Hola ¿PEGG? ;)
> 
> * PEGG  dixit:
> > Tengo que identificar cada etiqueta y contar
> >  cuantas veces aparece, hasta aquí no hay ningún problema.
> Mi
> 
 problema
> > comienza cuando lo imprimo, es necesario imprimirlo en la
> posición
> 
 en que
> > aparece. Por ejemplo
> > RI
> > IP
> > CN
> > FS
> > OR
> > 
> > quiero que imprima como está arriba y no
> > IP = 286895
> > CN = 55
> > OR = 37
> > FS = 172915
> > RI = 18073
> > 
> > ni ordenado de mayor a menor y viceversa.
> > Alguien sabe si es posible????
> 
> Claro que es posible. No te pongo el código que es muy temprano
> para
> 
 ser
> sábado y la voy a cagar, pero te digo cómo hacerlo.
> 
> Crea un array para almacenar el orden de las etiquetas tal y como
> aparecen. Cuando veas una etiqueta, si YA EXISTE en la HASH,
> la
> 
 procesas
> como ya lo haces ahora, sumando uno al número de veces que la
> has
> 
 visto.

otra forma es guardar en un hash el numero de linea de la primera ocurrencia de cada codigo:

 while (<>) {
     my @campos=split(/ /,$_);
     $todo{$campos[0]}++;
    $orden{$campos[0]} ||= $.
}

foreach (sort { $orden{$a} <=> $orden{$b} } keys %orden) {
  print "$_: $todo{$_}\n";
}

- Salvador





      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 



Más información sobre la lista de distribución Madrid-pm