2013-06-20 4 views
1

소켓에 쓰는 일부 통신 코드에 대한 단위 테스트를 작성하려고합니다. 테스트하는 동안 통신 라이브러리에 문자열을 쓰게하고 문자열의 내용을 필자가 예상 한 것과 비교할 수 있습니다.Perl 용 StringWriter/StringIO

자바에서는 StringWriter과 같은 것을 사용하여 통신 코드가 Writer 표준 인터페이스에 쓸 수 있고 결국에는 쓸 수있는 모든 데이터를 요구할 수 있습니다.

Perl을위한 Python의 StringIO와 같은 것이 있습니까? 이것과 같은 것이 이미 내장되어 있습니까?

답변

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

문자열에서 읽는 경우에도 '>'을 '<'로 변경하십시오. –

0

IO::Stringy과 비슷한 작업을 수행 할 수 있습니다.