Perl 如何从Test::Script运行中获取标准输出?

Perl 如何从Test::Script运行中获取标准输出?,perl,testing,Perl,Testing,我想用模块测试Perl脚本,比如testme.pl,并获取已执行脚本的标准输出。到目前为止,我得到了一个undef 以下是我尝试的内容(测试文件test.t): 以及要测试的脚本(testme.pl) 我还尝试使用数组ref\@out而不是$out,但仍然没有成功。有什么想法吗?谢谢 你就快拿到了。你需要这样做。否则,您只是传入undef,它将忽略该选项 script_runs(['testme.pl'], {"stdout"=>\$out}, 'run_script'); 你几乎成功了

我想用模块测试Perl脚本,比如testme.pl,并获取已执行脚本的标准输出。到目前为止,我得到了一个
undef

以下是我尝试的内容(测试文件
test.t
):

以及要测试的脚本(
testme.pl


我还尝试使用数组ref\@out而不是$out,但仍然没有成功。有什么想法吗?谢谢

你就快拿到了。你需要这样做。否则,您只是传入
undef
,它将忽略该选项

script_runs(['testme.pl'], {"stdout"=>\$out}, 'run_script');

你几乎成功了。你需要这样做。否则,您只是传入
undef
,它将忽略该选项

script_runs(['testme.pl'], {"stdout"=>\$out}, 'run_script');

{stdout=>\$out}
?@toolic Nope,我想对输出执行更高级的测试/匹配,我对完整的stdout感到更舒服。
{stdout=>\$out}
?@toolic Nope,我想对输出执行更高级的测试/匹配,我对完整的stdout.Ouahou感到更舒服。它工作得很好。。我必须承认我不经常使用标量引用。谢谢你@schwern!哇胡。它工作得很好。。我必须承认我不经常使用标量引用。谢谢你@schwern!
script_runs(['testme.pl'], {"stdout"=>\$out}, 'run_script');