Article View: pl.comp.lang.perl
Article #92Re: Sortowanie po polsku
From: Piotr Piatkowski
Date: Wed, 26 Feb 1997 22:21
Date: Wed, 26 Feb 1997 22:21
54 lines
3099 bytes
3099 bytes
Emil Stepniewski <emil@oeiizk.waw.pl> wrote: : Czy jest jakies dobry, sprawdzony, najszybszy i w ogole jedynie sluszny : sposob sortowania plikow z polskimi literkami przy pomocy perla? Wersja 5.004 (która ciągle się *oficjalnie* nie ukazała) jest już "lokalizowalna" - tzn. można napisać use local żeby perl używał ustawień z locale. Np. tak: #!/usr/bin/perl use locale; @words = qw(lupa łąka laka lądowanie ćma cytryna łóżko zupa żaba); print join ", ", sort @words; Jeżeli teraz mamy zainstalowane locale do języka polskiego i odpowiednio ustawione zmienne środowiskowe, to to działa tak: kompas@zombie3$ echo $LANG pl_PL kompas@zombie3$ ./perlloc ćma, cytryna, lądowanie, laka, łąka, łóżko, lupa, żaba, zupa Przy okazji wychodzi nowy problem, w Polsce mamy dwa standardy... nie, nie kodowania liter, to już wszyscy wiedzą - mamy też dwa standardy sortowania! :-) Ten który widać tu powyżej, to standard stosowany w bibliotekach - przyjmuje się tam że litery "ogonkowe" są rownoważne im odpowiednikom łacińskim, czyli np. w powyższych przykładach słowo "laka" jest za słowem "lądowanie" bo ma trzecią literkę k - drugie litery są traktowane jako identyczne. Podobnie "żaba" i "zupa" - liczy się druga litera. Ale sposób sortowania zależy tutaj już nie od perla, tylko od ustawień systemowych (w tym wypadku jest to AIX 4.2). Myślę że korzysanie z locale jest rozwiązeniem najlepszym, bo mamy problem rozwiązany generalnie, a do tego działają wszystkie funkcje, np: $ perl -Mlocale -e 'print uc "łóżko\n"' ŁÓŻKO Działają też oczywiście poprawnie takie rzeczy jak \w i \b w wyrażeniach regularnych. Werjsa beta perla 5.004 dostępna jest w archiwach CPAN, np. w: ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/src/5.0/unsupported/ (wbrew temu że nazywa się - najnowsza - 5.003_90 - jest to już 5.004, tylko że pre-release) Swoją drogą to teraz nowa wersja pojawia się średnio raz na tydzień, 5.003_90 pojawiła się ...wczoraj :-) (jeszcze jej nie widziałem) -- Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Technical Details
Message-ID:
<5f2d0j$e1e@galaxy.uci.agh.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.radio.cz!voskovec.radio.cz!newsbastard.radio.cz!news.radio.cz!newsbreeder.radio.cz!news.radio.cz!CESspool!nntp.uio.no!news.maxwell.syr.edu!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!rill.news.pipex.net!pipex!uunet!in2.uu.net!192.147.147.1!wariat.org!uw.edu.pl!cyfronet!galaxy.uci.agh.edu.pl!galaxy.uci.agh.edu.pl!newsReferences:
<33149750.346E2C30@oeiizk.waw.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.radio.cz!voskovec.radio.cz!newsbastard.radio.cz!news.radio.cz!newsbreeder.radio.cz!news.radio.cz!CESspool!nntp.uio.no!news.maxwell.syr.edu!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!rill.news.pipex.net!pipex!uunet!in2.uu.net!192.147.147.1!wariat.org!uw.edu.pl!cyfronet!galaxy.uci.agh.edu.pl!galaxy.uci.agh.edu.pl!news From: kompas@galaxy.uci.agh.edu.pl (Piotr Piatkowski) Newsgroups: pl.comp.lang.perl Subject: Re: Sortowanie po polsku Date: 26 Feb 1997 23:21:07 +0100 Organization: University of Mining & Metallurgy Lines: 54 Message-ID: <5f2d0j$e1e@galaxy.uci.agh.edu.pl> References: <33149750.346E2C30@oeiizk.waw.pl> NNTP-Posting-Host: galaxy.uci.agh.edu.pl Mime-Version: 1.0 X-Newsreader: TIN [UNIX 1.3 unoff BETA release 960713] Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit