diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/open.pm')
-rw-r--r-- | Master/tlpkg/tlperl/lib/open.pm | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/Master/tlpkg/tlperl/lib/open.pm b/Master/tlpkg/tlperl/lib/open.pm index 1bfe0d68330..fd22e1b9e71 100644 --- a/Master/tlpkg/tlperl/lib/open.pm +++ b/Master/tlpkg/tlperl/lib/open.pm @@ -1,7 +1,7 @@ package open; use warnings; -our $VERSION = '1.08'; +our $VERSION = '1.10'; require 5.008001; # for PerlIO::get_layers() @@ -95,16 +95,22 @@ sub import { } } if ($type eq 'IN') { - _drop_oldenc(*STDIN, @val); + _drop_oldenc(*STDIN, @val) if $std; $in = join(' ', @val); } elsif ($type eq 'OUT') { - _drop_oldenc(*STDOUT, @val); + if ($std) { + _drop_oldenc(*STDOUT, @val); + _drop_oldenc(*STDERR, @val); + } $out = join(' ', @val); } elsif ($type eq 'IO') { - _drop_oldenc(*STDIN, @val); - _drop_oldenc(*STDOUT, @val); + if ($std) { + _drop_oldenc(*STDIN, @val); + _drop_oldenc(*STDOUT, @val); + _drop_oldenc(*STDERR, @val); + } $in = $out = join(' ', @val); } else { @@ -207,7 +213,9 @@ many encodings have several aliases. See L<Encode::Supported> for details and the list of supported locales. When open() is given an explicit list of layers (with the three-arg -syntax), they override the list declared using this pragma. +syntax), they override the list declared using this pragma. open() can +also be given a single colon (:) for a layer name, to override this pragma +and use the default (C<:raw> on Unix, C<:crlf> on Windows). 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 |