Patch #15146:
[snip snip]
+The C<:std> subpragma on its own has no effect, but if combined with
+the C<:utf8> or C<:encoding> subpragmas, it converts the standard
+filehandles (STDIN, STDOUT, STDERR) to comply with encoding selected
+for input/output handles. For example, if both input and out are
+chosen to be C<:utf8>, a C<:std> will mean that STDIN, STDOUT, and
+STDERR are also in C<:utf8>. On the other hand, if only output is
+chosen to be in C<:encoding(koi8r)', a C<:std> will cause only the
+STDOUT and STDERR to be in C<koi8r>. The C<:locale> subpragma
+implicitly turns on C<:std>.
[snip snip]
This is what it looks like in Solaris which has UTF-8 locales.
Notice how the last two do not warn (the 0x80 after the 0xc4 has
been destroyed by my cut and paste, though, this is a MacOS 9
terminal program I'm using...)
mimosa:/tmp/jhi/perl ; env LC_ALL=en_US ./perl -Ilib -wle 'print chr(0x100)'
Wide character in print at -e line 1.
Ä
mimosa:/tmp/jhi/perl ; env LC_ALL=en_US.UTF-8 ./perl -Ilib -wle 'print
chr(0x100)'
Wide character in print at -e line 1.
Ä
mimosa:/tmp/jhi/perl ; env LC_ALL=en_US.UTF-8 ./perl -Ilib -Mopen=:std -wle
'print chr(0x100)'
Wide character in print at -e line 1.
Ä
mimosa:/tmp/jhi/perl ; env LC_ALL=en_US.UTF-8 ./perl -Ilib -Mopen=:std,:utf8
-wle 'print chr(0x100)'
Ä
mimosa:/tmp/jhi/perl ; env LC_ALL=en_US.UTF-8 ./perl -Ilib -Mopen=:locale -wle
'print chr(0x100)'
Ä
mimosa:/tmp/jhi/perl ;
--
$jhi++; # http://www.iki.fi/jhi/
# There is this special biologist word we use for 'stable'.
# It is 'dead'. -- Jack Cohen