On Sun, Mar 10, 2002 at 02:07:15PM +0000, Nick Ing-Simmons wrote:
> Jarkko Hietaniemi <[EMAIL PROTECTED]> writes:
> >
> >I started doing this at one point by making Perl to understand the
> >langinfo(CODESET) thingy (I18N::Langinfo), but at some point I was
> >somewhat disheartened by the sucky support of langinfo() across the
> >platforms and walked away in disgust.
> 
> Can we Configure test for working langinfo(CODESET), and if good enough
> make :locale the default - which I think is what Larry's wish means?

Possibly.  The only drawback I see is that then the Perl I/O behaviour
of the same release of Perl is different across platforms.
Essentially, it would make the locale pragma the default on certain
areas: things work differently depending on what locales are available,
and which locales the user is using.  Not that it wouldn't be the
right thing to do; it's just something that we haven't done so far.
Given that the default locale setup is screwy (e.g. in Mac OS X)
in many places, I don't want to make that decision.

Another thing is that I notice I got the current logic of
"use open ':locale'" wrong.  Let's try again:
(1) if langinfo(CODESET) returns something, it is used as the
    default encoding for opens
(2) if langinfo didn't work and we are under the locale pragma,
    the $ENV{LC_ALL} and LANG (in that order) are matched for any
    encoding (stuff after a "."), and if any found, that is being used
(3) if (1) and (2) didn't work, the LC_ALL and LANG are matched again
    for /\butf-?8/i, and if found, :utf8 is used for the default encoding
    for opens

Now while I'm at it, I might record the above logic to the pod of open.pm...

> >However, one can even currently (in 5.7.3) say use open ':locale' and
> >if your langinfo() returns something matching /utf-?8/i you will get
> >automagic utf8-fication on your I/O (Not on your STDIN and OUT,
> >though).  At least, that was the theory and plan.
> 
> What is the issue with doing it for STDIN..STDERR ?

No good reason not to, I guess.  So should "use open ':locale'"
automatically binmode the IN..ERR to the whatever locale we can find?

> One should be able to binmode them when we have established what 
> the layer(s) should be?
>
> -- 
> Nick Ing-Simmons
> http://www.ni-s.u-net.com/

-- 
$jhi++; # http://www.iki.fi/jhi/
        # There is this special biologist word we use for 'stable'.
        # It is 'dead'. -- Jack Cohen

Reply via email to