He Googles for help
Can someone explain how this sequence of PerlIO layers works?
Why must so many layers be used?
Because of the defaults, see PerlIO
Can these layers be specified using the open pragma? If so, how? If not, why not?
This should work
but apparently open pragma is broken and doesn't accept the same things as binmode/open
And why has this ancient Perl bug still not been fixed in 5.12.2?
I'm not a perl5-porter so I'm not sure, but it doesn't look like a bug exactly, and nobodys come up with a better way, or reported a bug (that I could find).
It seems there's no way to generate a UTF-16 file in little-endian byte order directly. To generate such a file, you have to specify the UTF-16LE CES (which is wrong) and add the byte order mark explictly to make it UTF-16 instead of UTF-16LE.