| [reply] |
| [reply] |
No, this is not a bug.
perl-5.8.x has many improvements over perl-5.6.x,
so if you're going to be using perl-5.8.x, you need to learn what those are.
5.6 had only 2 IO disciplines: ":crlf" (the default) and ":raw" (binmode) and did not support unicode properly. 5.8 has support for other disciplines including utf8.
`perldoc perl58delta' (emphasis mine)
...
* If your environment variables (LC_ALL, LC_CTYPE, LANG) look like you
want to use UTF-8 (any of the the variables match "/utf-?8/i"), your
STDIN, STDOUT, STDERR handles and the default open layer (see open)
are marked as UTF-8. (This feature, like other new features that
combine Unicode and I/O, work only if you are using PerlIO, but
that's the default.)
Note that after this Perl really does assume that everything is
UTF-8: for example if some input handle is not, Perl will probably
very soon complain about the input data like this "Malformed UTF-8
..." since any old eight-bit data is not legal UTF-8.
Note for code authors: if you want to enable your users to use UTF-8
as their default encoding but in your code still have eight-bit I/O
streams (such as images or zip files), you need to explicitly open()
or binmode() with ":bytes" (see "open" in perlfunc and "binmode" in
perlfunc), or you can just use "binmode(FH)" (nice for pre-5.8.0
backward compatibility).
...
| MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!" | | I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README). | | ** The third rule of perl club is a statement of fact: pod is sexy. |
| [reply] |