内容

名称

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 类中,无需直接访问底层方法,并且默认情况下不会导出它们。

Amiga::ARexx 方法

new

my $host = Amiga::ARexx->new( HostName => "PERLREXX");

为您的脚本/程序创建一个 ARexx 主机。

HostName

主机命令端口的 HostName。这是强制性的,如果没有提供,程序将失败。

wait

$host->wait('TimeOut' => $timeoutinusecs );

等待端口收到消息。

TimeOut

可选的超时时间,以微秒为单位。

getmsg

$msg = $host->getmsg();

从主机端口获取 ARexx 消息。返回一个 Amiga::ARexx::Msg 类的对象。

signal

$signal = $host->signal()

检索主机端口的信号掩码,用于 Amiga::Exec Wait()。

DoRexx

($rc,$rc2,$result) = DoRexx("desthost","commandstring");

将 "commandstring" 发送到主机 "desthost" 以执行。Commandstring 可以是特定的命令或脚本名称。

Amiga::ARexx::Msg 方法

message

$m = $msg->message();

将消息 "command" 作为字符串检索;

reply

$msg->reply($rc,$rc2,$result)

回复消息,返回任何命令的结果。如果成功,将 $rc 设置为 0,并将 $result 设置为结果字符串(如果适用)。

如果发生错误,将 $rc 设置为非零值,并将 $rc2 设置为附加错误代码(如果适用)。

setvar

$msg->setvar($varname,$value)

在发送此消息的语言上下文中设置一个变量。

getvar

$value = $msg->getvar($varname)

获取在发送此消息的语言上下文中变量的值。

EXPORT

默认情况下为无。

可导出常量

作者

Andy Broad <[email protected]>

版权和许可

版权所有 (C) 2013 Andy Broad。