假设我们有这个模块:
unit module outputs;
say "Loaded";
我们像这样加载它
use v6;
use lib ".";
require "outputs.pm6";
这将在
require
时打印“已加载” d。假设我们要捕获该加载模块的标准输出。如果 it's an external process 我们可以这样做,但似乎没有重定向 *OUT
的方法到一个字符串,或者,如果不可能的话,到一个文件。是这样吗?
最佳答案
您可以尝试使用 IO::String
:
use v6;
use lib ".";
use IO::String;
my $buffer = IO::String.new;
with $buffer -> $*OUT {
require "outputs.pm6";
};
say "Finished";
print ~$buffer;
输出 :
Finished
Loaded
另见 If I reassigned OUT in Perl 6, how can I change it back to stdout?
关于io - 捕获模块输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54855966/