当我运行这个脚本时,我得到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
#
为什么这个脚本会输出这么多行?
答案 0 :(得分:3)
这是a really old bug: RT#40401。 RT#29720可能是同一个bug,这使它差不多10年了。 (而且就在它被报道的时候;我猜这个bug可以追溯到$PerlIO::encoding::fallback
首次实施的时候。)