我希望脚本运行从模块导出的子例程,而导出的子例程将在脚本中作为MAIN运行。该子例程执行我想要的所有操作,除了它返回结果而不是打印结果。
RUN-MAIN 似乎可以达到我的目标,但是我不确定如何获取例程的返回值。
有什么方法可以捕获要打印的RUN-MAIN例程的输出?RUN-MAIN是否适合这种事情?
您可以使用函数组合运算符infix:>
或infix:
sub foo ($name, Int $n=1) { "Hello $name\n" xx $n }; RUN-MAIN &say o &foo, Nil; #or &foo Ro &say
但不幸的是,它正在改变签名
sub foo ($name, Int $n=1) { "Hello $name\n" xx $n }; say &foo.signature; say (&foo Ro &say).signature;
因此默认USAGE
消息不起作用。