在open上指定编码时无法写入

时间:2013-12-22 14:25:48

标签: perl

也许我误解了编码等,但每当我在可写模式下打开表达式时指定编码时,打印到句柄似乎没有效果。

代码:

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

有人可以解释为什么会这样。

谢谢,

克里斯

1 个答案:

答案 0 :(得分:5)

你正在遭受缓冲。添加

use IO::Handle qw( );
$handle->autoflush(1);

或在从缓冲区读取之前关闭句柄。