PerlIO :: encoding出现意外行为

时间:2014-01-30 19:22:54

标签: windows perl encoding io fallback

当我运行这个脚本时,我得到8行输出而不是2行。

#!perl
use strict;
use warnings;
use 5.10.1;

use PerlIO::encoding;
use Encode qw(:fallbacks);
$PerlIO::encoding::fallback = Encode::FB_HTMLCREF;
binmode STDOUT, ":encoding(cp850)";

say "TEST";
say "Hell\x{263a}\x{263b}llo.txt";

输出:

# TEST
# TEST
# Hell☺☻llo.txt
# TEST
# Hell☺☻llo.txt
# TEST
# Hell☺☻llo.txt
#

为什么这个脚本会输出这么多行?

1 个答案:

答案 0 :(得分:3)

这是a really old bug: RT#40401RT#29720可能是同一个bug,这使它差不多10年了。 (而且就在它被报道的时候;我猜这个bug可以追溯到$PerlIO::encoding::fallback首次实施的时候。)