in reply to Re: problems packing 8 bit data
in thread problems packing 8 bit data

...because your copy of perl has been built with perlIO, and STDOUT has--by default I assume as you don't know about it--IO layer :utf enabled.

This means that characters above the 7-bit ascii limit are converted to their utf (16-bit) representation on output. Using binmode on STDOUT removes this layer and so the convertion is not done.

Looking at perldelta, I cannot find anything to indicate that STDOUT would be opened :utf by default, but if you aren't doing anything to enable this yourself, I assume it must be?

See the section of Perldelta headed "PerlIO is now the default" and follow the various links close to the bottom of the section for more information.


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
If I understand your problem, I can solve it! Of course, the same can be said for you.