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>


Reply via email to