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



* jonasbn (sslug@sslug) [2000-09-14 15:55]:
> Hellow,
> 
> Jeg har nogen problemer med at sortere ved hjælp af spaceship
> operatoren <=> min sorterede liste kommer til at se ud som følger:
> 
> 1, 10, 2, 3 ... 9
> 
> Er der nogen som har et forslag til hvordan jeg sortererer ovenstående
> til nummerisk orden?

Se her:

   @a = ("1", "10", "9");
   @b = sort @a;               # @b = ("1","10","9")
   @b = sort {$a <=> $b} @a;   # @b = (1,9,10)
   @b = sort {$a cmp $b} @a;   # @b = ("1","10","9")

sort i den første form opdager selv at der er tale om en array af
strenge og bruger derfor cmp automagisk. Hvis @a havde været (1,10,9);
ville den have brugt <=>. De to næste eksempler viser at du kan tvinge
den til at virke som du vil.

Bemærk iøvrigt, at man fra perl 5.6 kan skrive

   @b = sort {$_[0] cmp $_[1]} @a;

hvis man hellere vil det.

 - peter


 
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 .