Amiga::ARexx - 用于 ARexx 支持的 Perl 扩展
这是一个 Perl 类/模块,允许您在 Perl 脚本中使用 ARexx。创建函数主机或在其他主机中执行脚本。该 API 模仿了 AmigaOS4.1 提供的 python arexx 模块。
# Create a new host
use Amiga::ARexx;
my $host = Amiga::ARexx->new('HostName' => "PERLREXX" );
# Wait for and process rexxcommands
my $alive = 1;
while ($alive)
{
$host->wait();
my $msg = $host->getmsg();
while($msg)
{
my $rc = 0;
my $rc2 = 0;
my $result = "";
print $msg->message . "\n";
given($msg->message)
{
when ("QUIT")
{
$alive = 0;
$result = "quitting!";
}
default {
$rc = 10;
$rc2 = 22;
}
}
$msg->reply($rc,$rc2,$result);
$msg = $host->getmsg();
}
}
# Send a command to a host
my $port = "SOMEHOST";
my $command = "SOMECOMMAND";
my ($rc,$rc2,$result) = Amiga::ARexx->DoRexx($port,$command);
arexx.class 的接口完全封装在 Perl 类中,无需直接访问底层方法,并且默认情况下不会导出它们。
my $host = Amiga::ARexx->new( HostName => "PERLREXX");
为您的脚本/程序创建一个 ARexx 主机。
主机命令端口的 HostName。这是强制性的,如果没有提供,程序将失败。
$host->wait('TimeOut' => $timeoutinusecs );
等待端口收到消息。
可选的超时时间,以微秒为单位。
$msg = $host->getmsg();
从主机端口获取 ARexx 消息。返回一个 Amiga::ARexx::Msg 类的对象。
$signal = $host->signal()
检索主机端口的信号掩码,用于 Amiga::Exec Wait()。
($rc,$rc2,$result) = DoRexx("desthost","commandstring");
将 "commandstring" 发送到主机 "desthost" 以执行。Commandstring 可以是特定的命令或脚本名称。
$m = $msg->message();
将消息 "command" 作为字符串检索;
$msg->reply($rc,$rc2,$result)
回复消息,返回任何命令的结果。如果成功,将 $rc 设置为 0,并将 $result 设置为结果字符串(如果适用)。
如果发生错误,将 $rc 设置为非零值,并将 $rc2 设置为附加错误代码(如果适用)。
$msg->setvar($varname,$value)
在发送此消息的语言上下文中设置一个变量。
$value = $msg->getvar($varname)
获取在发送此消息的语言上下文中变量的值。
默认情况下为无。
无
Andy Broad <[email protected]>
版权所有 (C) 2013 Andy Broad。