说我们有这个模块:
unit module outputs;
say "Loaded";
我们像这样加载它
use v6;
use lib ".";
require "outputs.pm6";
将在require
d时显示“已加载”。假设我们要捕获已加载模块的标准输出。如果是it's an external process,我们可以这样做,但是似乎没有一种方法可以将*OUT
重定向到字符串,或者如果不可能的话,重定向到文件。是这样吗?
您可以尝试使用*OUT
:
IO::String
输出:
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?调用追加到字符串:
$*OUT