develooper Front page | perl.perl5.porters | Postings from November 2000

Re: PerlIO - what next ?

Thread Previous | Thread Next
Nick Ing-Simmons
November 8, 2000 07:22
Re: PerlIO - what next ?
Message ID:
Nicholas Clark <> writes:
>On Wed, Nov 08, 2000 at 01:50:06PM +0000, Nick Ing-Simmons wrote:
>> This means knowing what it "should" look like to perl5:
>> Do you want getc($fh) return character or a byte depending on the handle's 
>> top "layer" ?
>> Likewise does 
>>    $count = read($fh,$buffer,10); 
>> read 10 chars or 10 bytes depending on mode ? 
>What do you mean by mode? "sum of effects of layers on the handle"

Yes. I was mistaken in thinking only top layer determined that.

>  use utf8;	# And if I understand it correctly this will become a no-op
>  Surely there's no difference between a byte and a character?
>> How do you want I open a file which is utf8 or shift-jis or whatever?
>> What should "binmode" mean now we have layers?
>I'd expect [my opinion] that getc($fh) gets scalar of length 1, and the read
>call returns a scalar of length 10.

Fine - that was my intuition too.

>A given (disk) file is treated as utf (and faulted if bad utf?) and stuffed
>into a scalar with characters > 255 if there's
>  (a layer on the handle to convert the raw bytestream to utf) ||
>  (the handle is using an OS API that returns utf)
>If there's no layer doing conversion then the raw disk bytes end up in
>a perl scalar which only contains characters < 256 independent of
>whether that byte sequence is a valid utf encoding (of some other
>I'd agree with Simon that what layers get stacked is based on use open;

Okay - but can we discuss what args you pass to open->import ?

>Nicholas Clark
Nick Ing-Simmons <>
Via, but not speaking for: Texas Instruments Ltd.

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About