Trideni

Pavel Kunc kupa na cmail.cz
Sobota Prosinec 16 18:27:02 MET 2000


Mockrat dekuji.

S pozdravem Pavel Kunc

"Boleslav Bobcik" <xbobcik na fi.muni.cz> wrote in message
news:Pine.SGI.4.21.0012140730170.1492968-100000 na aisa.fi.muni.cz...
> On 13 Dec 2000, Martin Caslavsky wrote:
>
> > > potreboval bych setridit napr.: @pole = ('Praha 1', 'Praha 2', 'Praha
4',
> > > 'Praha 6', 'Praha 2', 'Brno', 'Plzen');
> > > tak aby bylo setrideno podle abecedy a pak podle cisla, tedy:
> > > Brno, Plzen, Praha 1, Praha 2, Praha 2, Praha 4, Praha 6.
> >
> > To asi bude chtit porovnavat jako retezce (funkci cmp) a ne jako cisla
> > (implicitne funkci <=>).
> > Teda neco jako print sort {$a cmp $b} @pole;
> > Jinak tenhle priklad je hned na prvni strance dokumentace k funkci sort,
> > takze nechapu, jak jste to mohl prehlednout.
>
> Pan Kunc asi mel na mysli to, ze sort spolu s cmp spravne nesetridi napr.
> 'Praha 2', 'Praha 11', ale naopak.
>
> Muj navrh by byl (nezkousel jsem, pisu z hlavy) neco jako
>
> @vysledek = sort
>   {
>     my ($mesto1,$cislo1)= $a =~ m{^(.*) (\d*)$};
>     my ($mesto2,$cislo2) =$b =~ m{^(.*) (\d*)$};
>     return $mesto1 cmp $mesto2 or $cislo1 <=> $cislo2
>   }
>   @mesta;
>
> --Boleslav Bobcik
>   mailto:xbobcik na informatics.muni.cz
>   http://www.fi.muni.cz/~xbobcik
>




Další informace o konferenci Perl