Perl 是否可以将编码恢复为修改后的标准输入?

Perl 是否可以将编码恢复为修改后的标准输入?,perl,encoding,stdin,Perl,Encoding,Stdin,是否可以恢复先前修改过的STDIN的原始编码 #!/usr/bin/env perl use warnings; use strict; binmode STDIN, ':raw'; # do something here # ... # ... # restore original STDIN encoding binmode STDIN, $old_encoding; 不确定这是否可行,但有一个原因: 删除最顶层。为perl代码提供了一种操作层堆栈的方法。应该被认为是实验性的。请注意

是否可以恢复先前修改过的STDIN的原始编码

#!/usr/bin/env perl
use warnings;
use strict;

binmode STDIN, ':raw';

# do something here
# ...
# ...

# restore original STDIN encoding
binmode STDIN, $old_encoding;

不确定这是否可行,但有一个原因:

删除最顶层。为perl代码提供了一种操作层堆栈的方法。应该被认为是实验性的。请注意:pop仅适用于真实层,不会撤消伪层(如:utf8)的效果。一个可能的用途示例可能是:

需要一个更优雅(更安全)的界面


不是真的。对于初学者来说,每一层都可以有一个缓冲区,因此通过临时删除层自己进行编码,实际上可能会丢失数据。
open($fh,...)
...
binmode($fh,":encoding(...)");  # next chunk is encoded
...
binmode($fh,":pop");            # back to un-encoded