thanks. your change makes the sort work. but the result of 'setlocale(LC_COLLATE)' in my code is still 'en_US'.
thanks, tom On Wednesday 12 April 2006 12:06 am, John W. Krahn wrote: > tom arnall wrote: > > the following code: > > > > #!/usr/bin/perl -w > > use strict; > > use POSIX qw(locale_h); > > my ($f,@f,$g); > > setlocale(LC_COLLATE, "es_ES.ISO-8859-1"); > > @f = qw(oval óvalo zurrir); > > print "before sort:@f > > "; > > @f = sort @f; > > $f = setlocale(LC_COLLATE); > > print "after sort:@f > > locale *after* setlocale statement: $f > > !!!??? > > "; > > > > produces: > > > > before sort:oval óvalo zurrir > > after sort:oval zurrir óvalo > > locale *after* setlocale statement: en_US > > !!!??? > > > > why is 'óvalo' following 'zurrir' after the sort?? i.e., why is the > > setlocale statement not working? the locale seems to be set up properly > > on my system (debian linux), i.e., i've got: > > > > /usr/share/i18n/locales/es_ES > > You have to use the 'locale' pragma: > > $ perl -le' > use locale; # MUST use this pragma!! > use POSIX qw( locale_h ); > setlocale( LC_COLLATE, "es_ES.ISO-8859-1" ); > my @f = qw( oval óvalo zurrir ); > print "before sort: @f"; > @f = sort @f; > print "after sort: @f"; > ' > before sort: oval óvalo zurrir > after sort: óvalo oval zurrir > > > perldoc locale > perldoc perllocale > > > > John > -- > use Perl; > program > fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>