summaryrefslogtreecommitdiff
path: root/lib/I18N/Collate.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/I18N/Collate.pm')
-rw-r--r--lib/I18N/Collate.pm66
1 files changed, 48 insertions, 18 deletions
diff --git a/lib/I18N/Collate.pm b/lib/I18N/Collate.pm
index 0d8314e12e..6961dc2f1c 100644
--- a/lib/I18N/Collate.pm
+++ b/lib/I18N/Collate.pm
@@ -1,3 +1,8 @@
+#-----------------------------------------------------------------------#
+# NOTE! This module is deprecated (obsolete) after the Perl release #
+# 5.003_06 as the functionality has been integrated into the Perl core. #
+#-----------------------------------------------------------------------#
+
package I18N::Collate;
=head1 NAME
@@ -23,30 +28,29 @@ You can compare $s1 and $s2 above with
to extract the data itself, you'll need a dereference: $$s1
-This uses POSIX::setlocale(). The basic collation conversion is done by
-strxfrm() which terminates at NUL characters being a decent C routine.
-collate_xfrm() handles embedded NUL characters gracefully. Due to C<cmp>
-and overload magic, C<lt>, C<le>, C<eq>, C<ge>, and C<gt> work also. The
-available locales depend on your operating system; try whether C<locale
--a> shows them or man pages for "locale" or "nlsinfo" or
-the direct approach C<ls /usr/lib/nls/loc> or C<ls
-/usr/lib/nls>. Not all the locales that your vendor supports
-are necessarily installed: please consult your operating system's
-documentation and possibly your local system administration.
+This module uses POSIX::setlocale(). The basic collation conversion is
+done by strxfrm() which terminates at NUL characters being a decent C
+routine. collate_xfrm() handles embedded NUL characters gracefully.
-The locale names are probably something like
-C<"xx_XX.(ISO)?8859-N"> or C<"xx_XX.(ISO)?8859N">, for example
-C<"fr_CH.ISO8859-1"> is the Swiss (CH) variant of French (fr),
-ISO Latin (8859) 1 (-1) which is the Western European character set.
+The available locales depend on your operating system; try whether
+C<locale -a> shows them or man pages for "locale" or "nlsinfo" or the
+direct approach C<ls /usr/lib/nls/loc> or C<ls /usr/lib/nls> or
+C<ls /usr/lib/locale>. Not all the locales that your vendor supports
+are necessarily installed: please consult your operating system's
+documentation and possibly your local system administration. The
+locale names are probably something like C<xx_XX.(ISO)?8859-N> or
+C<xx_XX.(ISO)?8859N>, for example C<fr_CH.ISO8859-1> is the Swiss (CH)
+variant of French (fr), ISO Latin (8859) 1 (-1) which is the Western
+European character set.
=cut
# I18N::Collate.pm
#
-# Author: Jarkko Hietaniemi <Jarkko.Hietaniemi@hut.fi>
+# Author: Jarkko Hietaniemi <F<jhi@iki.fi>>
# Helsinki University of Technology, Finland
#
-# Acks: Guy Decoux <decoux@moulon.inra.fr> understood
+# Acks: Guy Decoux <F<decoux@moulon.inra.fr>> understood
# overloading magic much deeper than I and told
# how to cut the size of this code by more than half.
# (my first version did overload all of lt gt eq le ge cmp)
@@ -87,7 +91,7 @@ ISO Latin (8859) 1 (-1) which is the Western European character set.
# variant of French (fr), ISO Latin (8859) 1 (-1)
# which is the Western European character set.
#
-# Updated: 19960104 1946 GMT
+# Updated: 19961005
#
# ---
@@ -104,7 +108,33 @@ fallback 1
cmp collate_cmp
);
-sub new { my $new = $_[1]; bless \$new }
+sub new {
+ my $new = $_[1];
+
+ if ($^W && $] >= 5.003_06) {
+ unless ($please_use_I18N_Collate_even_if_deprecated) {
+ warn <<___EOD___;
+***
+
+ WARNING: starting from the Perl version 5.003_06 the I18N::Collate
+ interface for comparing 8-bit scalar data according to the current locale
+
+ HAS BEEN DEPRECATED
+
+ (that is, please do not use it anymore for any new applications and please
+ migrate the old applications away from it) because its functionality was
+ integrated into the Perl core language in the release 5.003_06.
+
+ See pod/perllocale.pod for further information.
+
+***
+___EOD___
+ $please_use_I18N_Collate_even_if_deprecated++;
+ }
+ }
+
+ bless \$new;
+}
sub setlocale {
my ($category, $locale) = @_[0,1];