捕获模块输出

问题描述 投票:5回答:2

说我们有这个模块:

unit module outputs;

say "Loaded";

我们像这样加载它

use v6;

use lib ".";

require "outputs.pm6";

将在require d时显示“已加载”。假设我们要捕获已加载模块的标准输出。如果是it's an external process,我们可以这样做,但是似乎没有一种方法可以将*OUT重定向到字符串,或者如果不可能的话,重定向到文件。是这样吗?

io perl6 raku
2个回答
8
投票

您可以尝试使用*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;


7
投票

临时重新分配Finished Loaded ,以便If I reassigned OUT in Perl 6, how can I change it back to stdout?调用追加到字符串:

$*OUT
© www.soinside.com 2019 - 2024. All rights reserved.