我正在尝试为一些写入套接字的通信代码编写一些单元测试。在测试期间,我想让我的通信库写入一个字符串,然后我可以将字符串的内容与我期望写入的内容进行比较。
在 Java 中,我会使用类似 a 的东西,StringWriter
以便我的通信代码可以写入标准Writer
接口,最后我可以请求所有写入的数据。
对于 Perl,是否有相当于这个或 Python 的 StringIO 的?像这样的东西已经内置了吗?
是的。从 v5.8 开始,您可以直接打开标量引用的输出句柄。
my $output;
open my $handle, '>', \$output;
print $handle "foo\n";
printf $handle "%d\n", 123;
close $handle;
print $output; # => "foo\n123\n"
你可以用IO::Stringy做类似的事情。