SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] Sortering af tal i en hash



YES !!!

Det var lige dte jeg skulle bruge ! Så har jeg også lært noget idag, dagen har ikke være spildt....

Mvh. Jesper

Thomas Eibner wrote:

> On Mon, Jun 18, 2001 at 11:31:29PM +0200, Jesper Lund wrote:
> > Hej,
> >
> > Jeg er ved at skrive lidt logparser til min ProFTPd log. I den
> > frobindelse har jeg fået lavet noget med en hash der ser sådan her ud:
> >
> > $filnavn{antal gange den er hentet}
> >
> > Den vil jeg gerne have skrevet ud i nummerorden:
> >
> > print "<table border=1>\n";
> > foreach $i (keys(%filnavn)) {
> >     print "<tr><td>$i<td>$filnavn{$i}\n";
> > }
> >
> > men der kommer de jo i den rækkefælge de nu lige tilfældigt står i i
> > hashen.
> >
> > Hvis jeg gerne vil have den fil der er downet flest gange øverst i
> > tabellen, skal de sorteres efter det tal som man kan angove i hashen.
> > Men hvordan ? Findes der en smart funktion, eller skal man selv lave
> > noget spaghetti-programmering ?
>
> $ perl -e '%filnavn = ("en" => 5, "to" => 3, "tre" => 10); print map { "$_ => $filnavn{$_}\n" } sort { $filnavn{$b} <=> $filnavn{$a} } keys %filnavn;'
> tre => 10
> en => 5
> to => 3
>
> Saa noget lignende:
> foreach my $fil (sort { $filnav{$b} <=> $filnavn{$a} } keys %filnavn) {
>
> burde vaere det du leder efter..
>
> --
>   Thomas Eibner <http://thomas.eibner.dk/> DnsZone <http://dnszone.org/>
>   mod_pointer <http://stderr.net/mod_pointer>



 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:53
Denne side vedligeholdes af MHonArc .