summaryrefslogtreecommitdiff
path: root/cpan/Unicode-Collate/README
blob: 16bf8c4aa72a56e2dcd78bbc02713660270b20f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Unicode/Collate version 0.68
===============================

NAME

  Unicode::Collate - Unicode Collation Algorithm

SYNOPSIS

  use Unicode::Collate;

  #construct
  $Collator = Unicode::Collate->new(%tailoring);

  #sort
  @sorted = $Collator->sort(@not_sorted);

  #compare
  $result = $Collator->cmp($a, $b); # returns 1, 0, or -1.
  $result = $Collator->eq($a, $b);  # returns true/false
    (similarly ->ne, ->lt, ->le, ->gt, ->ge)

Note: Strings in @not_sorted, $a and $b are interpreted
according to Perl's Unicode support. See perlunicode,
perluniintro, perlunitut, perlunifaq, utf8.
Otherwise you can use "preprocess" or should decode them before.

INSTALL

  Perl 5.6.1 or later is required.
  Perl 5.8.1 or later is recommended.

  Though this distribution contains a subset of an old DUCET, named
  "keys.txt", this one is intended only for doing a test of this module
  and practically useless for any other purpose.

  Installation of Unicode::Collate::Locale requires Collate/Locale.pm,
  Collate/Locale/*.pm, Collate/CJK/*.pm and Collate/allkeys.txt.
  On building, Unicode::Collate::Locale doesn't require any of data/*.txt,
  gendata/*, and mklocale.
  Tests for Unicode::Collate::Locale are named t/loc_*.t.

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

If you have a C compiler and want to use XSUB edition,
type the following (!! "enableXS" must run before "Makefile.PL" !!):

   perl enableXS
   perl Makefile.PL
   make
   make test
   make install

If you decide to install pure Perl (i.e. non-XS) edition after trying
to build XSUB, type the following:

   make clean
   perl disableXS
   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

  The conformant collation requires Unicode::Normalize (v 0.10 or later)
  although Unicode::Collate can be used without Unicode::Normalize.

ABOUT DUCET

  Though this module can be used without any C<table> file,
  to use this module easily, it is recommended to install a table file
  in the UCA format, by copying it under the directory
  <a place in @INC>/Unicode/Collate.

  You can install such a table file by adding it to "Collate" directory
  (where "keys.txt" is placed) in this distribution before executing
  Makefile.PL.

  The most preferable one is "The Default Unicode Collation Element Table"
  (aka DUCET), available from the Unicode Consortium's website:

   http://www.unicode.org/Public/UCA/

   http://www.unicode.org/Public/UCA/latest/allkeys.txt (latest version)

  If DUCET is not installed, it is recommended to copy the file
  from http://www.unicode.org/Public/UCA/latest/allkeys.txt
  to <a place in @INC>/Unicode/Collate/allkeys.txt manually.

HOW TO CHANGE DUCET (NOT WARRANTED)

  0. rewriting UCA_Version and Base_Unicode_Version in Collate.pm
     and t/version.t is preferred.
  1. replace Collate/allkeys.txt with a new DUCET.
  2. run mklocale to generate new Locale/*.pl and Korean.pm.
  3. replace Collate/Locale/*.pl with the new Locale/*.pl,
     and Collate/CJK/Korean.pm with the new Korean.pm.
  4. make test.
     IF FAIL, it may require more changes, not be easy.

AUTHOR, COPYRIGHT AND LICENSE

The Unicode::Collate module for perl was written by SADAHIRO Tomoyuki,
<SADAHIRO@cpan.org>. This module is Copyright(C) 2001-2010,
SADAHIRO Tomoyuki. Japan. All rights reserved.

This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

The file Unicode/Collate/allkeys.txt was copied verbatim
from http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt
This file is Copyright (c) 1991-2009 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in http://www.unicode.org/copyright.html