【发布时间】:2018-10-29 08:56:40
【问题描述】:
my $writer = IO::Pipe->new();
$writer->writer();
print $writer $some_function();
$writer->flush();
$writer->close;
如果some_function 产生一些异常或 STDERR 会发生什么?是写到$writer的吗?如果否,如何实现?
【问题讨论】:
-
不,您只是将结果打印到该句柄。 /// 使用
eval捕获异常。捕获将发送到 STDERR 的内容要复杂得多,但我认为 Capture::Tiny 可以提供帮助。 /// 或者,您可以将管道分配给 fd 2,使其成为 STDERR