IO doesn't include STDOUT/STDIN
perl -Mopen=IO,:encoding(UTF-8) -le"print join q! !, $$_[0], PerlIO::g
+et_layers($$_[0], output => $$_[1]) for [*STDOUT,1], [*STDIN,0], [*ST
+DERR,1] "
*main::STDOUT unix crlf
*main::STDIN unix crlf
*main::STDERR unix crlf
You want use open qw! :std :encoding(UTF-8) !;
ex:
perl -Mopen=:std,:encoding(UTF-8) -le"print join q! !, $$_[0], PerlIO:
+:get_layers($$_[0], output => $$_[1]) for [*STDOUT,1], [*STDIN,0], [*
+STDERR,1] "
*main::STDOUT unix crlf encoding(utf-8-strict) utf8
*main::STDIN unix crlf encoding(utf-8-strict) utf8
*main::STDERR unix crlf encoding(utf-8-strict) utf8
|