[LUGOS-SLO] Kako sortirati v terminalu in perlu?
Mojca Miklavec
mojca.miklavec.lists at gmail.com
Wed Jun 15 09:14:53 CEST 2011
Živijo,
uporabljam Mac OS X in
> locale
LANG="sl_SI.UTF-8"
LC_COLLATE="sl_SI.UTF-8"
LC_CTYPE="sl_SI.UTF-8"
LC_MESSAGES="sl_SI.UTF-8"
LC_MONETARY="sl_SI.UTF-8"
LC_NUMERIC="sl_SI.UTF-8"
LC_TIME="sl_SI.UTF-8"
LC_ALL="sl_SI.UTF-8"
Vse običajno GNU programje, ki sem si ga naložila, tole upošteva
(beri: wget mi vrača opozorila o napakah v slovenščini ipd.; sicer je
res, da je to gnu programje prišlo z MacPorts-i), medtem ko "man sort"
pravi
*** WARNING *** The locale specified by the environment
affects sort order. Set LC_ALL=C to
get the traditional sort order that uses native byte values.
toda "cat datoteka-z-imeni.txt | sort" gladko ignorira slovenske znake
in jih porine na konec (kodirani so v UTF-8).
Zares me zanima sortiranje v Perlu, vendar nekako sumim, da perl kliče
katero od sistemskih knjižnic, zato me zanima tudi, zakaj sort v
terminalu ne deluje. (Ga samo jaz ne znam uporabljati ali je na Mac-u
namenoma onemogočen locale?)
Moj perl eksperiment daje dokaj borne rezultate:
use encoding 'utf8';
use locale;
use POSIX qw(locale_h);
use warnings;
use strict;
setlocale(LC_ALL, "sl_SI.UTF-8");
my @sorttest = qw(cd ab ča št de tu si);
@sorttest = sort(@sorttest);
foreach my $a ( @sorttest ) {
print "$a\n";
}
ab
cd
de
si
tu
ča
št
Ima kdo kakšno idejo?
Hvala,
Mojca
More information about the lugos-slo
mailing list