也许我误解了编码等,但每当我在可写模式下打开表达式时指定编码时,打印到句柄似乎没有效果。
代码:
my $string = "one\n";
#open my $handle, '>>', \$string or die "cannot open: $!";
open my $handle, '>>:encoding(UTF-8)', \$string or die "cannot open: $!";
print $handle "two\n";
print $string;
输出:
one
预期输出:
one
two
有人可以解释为什么会这样。
谢谢,
克里斯
答案 0 :(得分:5)
你正在遭受缓冲。添加
use IO::Handle qw( );
$handle->autoflush(1);
或在从缓冲区读取之前关闭句柄。