of option letters. The letters, their numeric values, and effects
are as follows; listing the letters is equal to summing the numbers.
- I 1 STDIN is assumed to be in UTF-8
- O 2 STDOUT will be in UTF-8
- E 4 STDERR will be in UTF-8
- S 7 I + O + E
- i 8 UTF-8 is the default PerlIO layer for input streams
- o 16 UTF-8 is the default PerlIO layer for output streams
- D 24 i + o
- A 32 the @ARGV elements are expected to be strings encoded in UTF-8
- L 64 normally the "IOEioA" are unconditional,
- the L makes them conditional on the locale environment
- variables (the LC_ALL, LC_TYPE, and LANG, in the order
- of decreasing precedence) -- if the variables indicate
- UTF-8, then the selected "IOEioA" are in effect
+ I 1 STDIN is assumed to be in UTF-8
+ O 2 STDOUT will be in UTF-8
+ E 4 STDERR will be in UTF-8
+ S 7 I + O + E
+ i 8 UTF-8 is the default PerlIO layer for input streams
+ o 16 UTF-8 is the default PerlIO layer for output streams
+ D 24 i + o
+ A 32 the @ARGV elements are expected to be strings encoded
+ in UTF-8
+ L 64 normally the "IOEioA" are unconditional,
+ the L makes them conditional on the locale environment
+ variables (the LC_ALL, LC_TYPE, and LANG, in the order
+ of decreasing precedence) -- if the variables indicate
+ UTF-8, then the selected "IOEioA" are in effect
For example, C<-COE> and C<-C6> will both turn on UTF-8-ness on both
STDOUT and STDERR. Repeating letters is just redundant, not cumulative
C<-C> on its own (not followed by any number or option list), or the
empty string C<""> for the C<$ENV{PERL_UNICODE}, has the same effect
-as <-CSDL>. In other words, the standard I/O handles and the default
+as C<-CSDL>. In other words, the standard I/O handles and the default
C<open()> layer are UTF-8-fied B<but> only if the locale environment
variables indicate a UTF-8 locale. This behaviour follows the
I<implicit> (and problematic) UTF-8 behaviour of Perl 5.8.0.