I'm surprised that we don't make the old functionality controlled by a
variable of some sort.

i.e.

$UNICODE_ENABLED = 0;

shortcut:   $:-( = 0;

where the default is 1.   much like:  $/   

(hmm, I like the multibyte smilely convention, that would be
interesting)

of course it will require a visit to existing functionality but it does
help the forward migration.

btw: I do agree that there are times when a single byte output is
required.  for example when parsing/building legacy data files. 
=


> -----Original Message-----
> From: Larry Wall [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, May 05, 2004 12:39 PM
> To: [EMAIL PROTECTED]
> Subject: Re: BOM and principle of least surprise
> 
> 
> On Wed, May 05, 2004 at 07:47:53PM +0300, Jarkko Hietaniemi wrote:
> : We tried this with perl 5.8.0 and the feedback was overwhelmingly
> : negative...  if people do "print chr 0xff" they do expect one byte,
> : not two.
> 
> We'll just have to figure out how to retrain those people for 
> Perl 6. The binary/text distinction is important enough on 
> filehandles that I'm tempted to resort to different keywords 
> to open them, just to force people to be specific.  'Course, 
> that doesn't help with stdout...
> 
> A non-serious suggestion is that we pull the same trick and 
> force people to specify by name whether they're running a 
> version of Perl that defaults to text or binary, so they have 
> to invoke #!/usr/bin/tperl or #!/usr/bin/bperl.  But 
> realistically, Perl is going to continue to default to text 
> mode, which means we have to make it simple to switch to 
> "binary-filter mode" on stdin and stdout. (Presumably stderr 
> remains textish.)
> 
> Right now, the meaning of "text" is subject to severe 
> distortions due to legacy issues.  But in the long run, 
> "text" is going to mean Unicode, and that probably means a 
> UTF-8 file encoding at least in the western world, and 
> probably something else in the eastern world (but in either 
> case, the file encoding is hidden behind the filehandle as 
> far as Perl is concerned).  The P5-to-P6 transition is a 
> reasonable time to bite that bullet.  Not sure how much fence 
> straddling Ponie can do though...
> 
> It would be really nice if the OS guys would get their 
> collective act together and provide APIs to tell programs 
> what their expectations are, but the next few years are 
> likely to remain chaotic in that respect, and we're likely to 
> see many "bandaids" in the form of environment variables, 
> which are the wrong solution to most API problems.  But we 
> have to aim Perl 6 for the time when things will eventually 
> settle down.  That doesn't mean that we have to make Unicode 
> the default right away if we decide it's impossible to "bite 
> the bullet" right now--but it does mean at miminum that there 
> shouldn't be any default other than Unicode, and if we force 
> people to be explicit right now, there has to be a way of 
> simplify the API later when it's reasonable to default to 
> Unicode.  That's probably the transitional form that Perl 5 
> and Ponie have to go through anyway, even if Perl 6 manages 
> to force the issue.
> 
> Larry
> 
> 

Reply via email to