Amiga::ARexx - Perl extension for ARexx support
This a perl class / module to enable you to use ARexx with your perlscript. Creating a function host or executing scripts in other hosts. The API is loosley modeled on the python arexx module supplied by with AmigaOS4.1
# 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);
The interface to the arexx.class in entirely encapsulated within the perl class, there is no need to access the low level methods directly and they are not exported by default.
my $host = Amiga::ARexx->new( HostName => "PERLREXX");
Create an ARexx host for your script / program.
The HostName for the hosts command port. This is madatory, the program will fail if not provided.
$host->wait('TimeOut' => $timeoutinusecs );
Wait for a message to arive at the port.
optional time out in microseconds.
$msg = $host->getmsg();
Fetch an ARexx message from the host port. Returns an objrct of class Amiga::ARexx::Msg
$signal = $host->signal()
Retrieve the signal mask for the host port for use with Amiga::Exec Wait()
($rc,$rc2,$result) = DoRexx("desthost","commandstring");
Send the "commandstring" to host "desthost" for execution. Commandstring might be a specific command or scriptname.
$m = $msg->message();
Retreive the message "command" as a string;
$msg->reply($rc,$rc2,$result)
Reply the message returning the results of any command. Set $rc = 0 for success and $result to the result string if appropriate.
Set $rc to non zero for error and $rc2 for an additional error code if appropriate.
$msg->setvar($varname,$value)
Set a variable in the language context sending this message.
$value = $msg->getvar($varname)
Get the value of a variable in the language context sending this message.
None by default.
None
Andy Broad <andy@broad.ology.org.uk>
Copyright (C) 2013 by Andy Broad.