2013-06-20 72 views
1

我正在嘗試爲某些寫入套接字的通信代碼編寫一些單元測試。在測試過程中,我想讓我的通信庫寫入一個字符串,然後我可以將字符串的內容與我期望寫入的內容進行比較。Perl的StringWriter/StringIO

在Java中我會使用的東西就像一個StringWriter讓我的通信代碼可以寫入標準Writer接口,並在年底我可以要求所有被寫入的數據。

有沒有相當於這個或Python的StringIO for Perl?像這樣的東西已經內置?

回答

4

是的。從v5.8開始,您可以直接打開輸出句柄到標量引用。

my $output; 
open my $handle, '>', \$output; 
print $handle "foo\n"; 
printf $handle "%d\n", 123; 
close $handle; 
print $output; # => "foo\n123\n" 
+1

適用於從字符串中讀取,只需將'>'更改爲'<'即可。 –