3

我正在使用 perl 5.10.0 并尝试以原始模式将内容写入内存缓冲区。但它不起作用。在下面的代码片段中,我尝试比较三种场景之间的结果

my ($s1, $s2);
open RAWF, '>:raw', \$s1;     #<-------  Opening in memory reference in raw mode
print RAWF 'Hello world in RAW MODE', "\n";

open FH, '>:raw', 'testfile.bin'; #<-------  Opening a file in raw mode
print FH 'Hello world in FILE', "\n";

open NORF, '>', \$s2;   #<-------  Opening in memory reference in normal mode
print NORF 'Hello world in NORMAL MODE', "\n";   

print $s1;    #<------ Doesnt print anything
print $s2;    #<------ Prints as expected

但是,如果我使用 perl 5.14.* 那么它可以工作。这是 perl 5.10.1 的限制吗?还是应该以其他方式来工作?

4

1 回答 1

3

显然,这是在 Perl 5.12 时间范围内修复的错误。请参阅perlbug #80764 - 尽管最初的报告/修复没有具体提及您的问题,但这个问题出现在关于该错误的讨论中并被纳入这些补丁。

于 2013-07-31T06:12:27.070 回答