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

时间:2019-01-11 17:45:17

标签: 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

实际上,这正是我要做的当两个exec都位于我的当前目录中时所看到的。但是,当我将它们移动到$ PATH中的其他目录并调用调用程序时,我看到:

> ./caller
caller returned In callee

这是...意外。如果Regina Rexx手册中对此行为有解释,我看不到。我想念什么吗?谢谢。

1 个答案:

答案 0 :(得分:3)

事实证明,只有Rexx执行程序位于REGINA_MACROS变量中提到的目录中时,它们才可以用作外部函数,

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

否则,被调用的例程将被视为另一个可执行文件。返回值是所有标准输出行之间带有空格定界符。所有的stderr输出都照常发送到屏幕(或重定向)。