我想要一个脚本来运行从模块导出的子例程,导出的子程序在脚本中作为 MAIN 运行。该子例程做了我想做的所有事情,除了它返回结果而不是打印它。
RUN-MAIN 似乎实现了我的大部分目标,但我不确定如何获取例程的返回值。
有没有办法可以捕获提供给 RUN-MAIN 的例程的输出以进行打印? RUN-MAIN 是处理这类事情的正确方法吗?
最佳答案
可以在包装的例程中使用重调度来调用原始例程。 say
然后可以在包装内重新调度的结果上使用。这也将从原始例程产生使用。
sub foo (
$input #= The data we want
) {
return $input;
}
&foo.wrap( sub (|) { callsame.say } );
RUN-MAIN &foo, Nil;
$ raku filename.raku
Usage:
filename.raku <input>
<input> The data we want
关于main - 我可以捕获 RUN-MAIN 中使用的例程的返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58941051/