diff options
Diffstat (limited to 'lib/I18N/Collate.pm')
-rw-r--r-- | lib/I18N/Collate.pm | 66 |
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]; |