Function 外部函数如何在Regina Rexx中返回数据?

Function 外部函数如何在Regina Rexx中返回数据?,function,cygwin,external,rexx,Function,Cygwin,External,Rexx,我已经在Windows 10上的Cygwin中安装了Regina Rexx软件包(版本3.9.1)。为了测试它,我编写了以下代码: 来电者: #!/usr/bin/rexx x = 'callee'() ; say 'callee returned' x ; exit 被叫人: #!/usr/bin/rexx say 'In callee' ; return 42 调用调用方时,我希望看到: > ./caller In callee callee returned 42 事实上,这正

我已经在Windows 10上的Cygwin中安装了Regina Rexx软件包(版本3.9.1)。为了测试它,我编写了以下代码:

来电者:

#!/usr/bin/rexx
x = 'callee'() ; say 'callee returned' x ; exit
被叫人:

#!/usr/bin/rexx
say 'In callee' ; return 42
调用调用方时,我希望看到:

> ./caller
In callee
callee returned 42
事实上,这正是我在当前目录下看到的。但是,当我将它们移动到$PATH中的另一个目录并调用调用者时,我看到:

> ./caller
caller returned In callee

这是。。。想不到的如果在Regina Rexx手册中有对该行为的解释,我没有看到。我错过什么了吗?谢谢。

事实证明,只有当Rexx EXEC位于REGINA_宏变量中提到的目录中时,才可以将其用作外部函数,如下所示:

export REGINA_MACROS="${HOME}/subdir:/maybe/somewhere/else"

如果不这样做,被调用的例程将被视为另一个可执行程序。返回值是所有标准输出行,它们之间有一个空格分隔符。任何stderr输出都会像往常一样发送到屏幕(或重定向)。

您可能希望在SourceForge上的Regina REXX论坛上询问这一问题;回答可能会更快。(公平地说,这可能是我在这方面看到的第一个里贾纳问题。)以下是一些细节。