main - 我可以捕获 RUN-MAIN 中使用的例程的返回值吗?

标签 main subroutine raku

我想要一个脚本来运行从模块导出的子例程,导出的子程序在脚本中作为 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/

相关文章:

delphi - 如何将匿名枚举类型传递到子例程中?

arrays - 克隆多维数组

windows - NativeCall 在 Kernel32.dll 中找不到函数

perl - 如何在Perl中调用名称为哈希值的子例程?

java - “找不到或加载主类”是什么意思?

java - “找不到或加载主类”是什么意思?

class - Scala 中的主要方法

vba - 从另一个子调用类型变量

raku - Raku 有类似 Python 的 Struct 的功能吗?

c++ - 为什么 `main`函数内的局部int变量会自动初始化?