Provided by: libobject-remote-perl_0.004001-3_all 

NAME
Object::Remote::Role::Connector::PerlInterpreter - Role for connections to a Perl interpreter
SYNOPSIS
use Object::Remote;
my %opts = (
perl_command => [qw(nice -n 10 perl -)],
watchdog_timeout => 120, stderr => \*STDERR,
);
my $local_connection = Object::Remote->connect('-', %opts);
my $hostname = Sys::Hostname->can::on($remote, 'hostname');
DESCRIPTION
This is the role that supports connections to a Perl interpreter that is executed in a different process.
The new Perl interpreter can be either on the local or a remote machine and is configurable via arguments
passed to the constructor.
ARGUMENTS
perl_command
By default the Perl interpreter will be executed as "perl -" but this can be changed by providing an
array reference as the value to the perl_command attribute during construction.
stderr
If this value is defined then it will be used as the file handle that receives the output of STDERR
from the Perl interpreter process and I/O will be performed by the run loop in a non-blocking way. If
the value is undefined then STDERR of the remote process will be connected directly to STDERR of the
local process with out the run loop managing I/O. The default value is undefined.
There are a few ways to use this feature. By default the behavior is to form one unified STDERR
across all of the Perl interpreters including the local one. For small scale and quick operation this
offers a predictable and easy to use way to get at error messages generated anywhere. If the local
Perl interpreter crashes then the remote Perl interpreters still have an active STDERR and it is
possible to still receive output from them. This is generally a good thing but can cause issues.
When using a file handle as the output for STDERR once the local Perl interpreter is no longer
running there is no longer a valid STDERR for the remote interpreters to send data to. This means
that it is no longer possible to receive error output from the remote interpreters and that the shell
will start to kill off the child processes. Passing a reference to STDERR for the local interpreter
(as the SYNOPSIS shows) causes the run loop to manage I/O, one unified STDERR for all Perl
interpreters that ends as soon as the local interpreter process does, and the shell will start
killing children when the local interpreter exits.
It is also possible to pass in a file handle that has been opened for writing. This would be useful
for logging the output of the remote interpreter directly into a dedicated file.
watchdog_timeout
If this value is defined then it will be used as the number of seconds the watchdog will wait for an
update before it terminates the Perl interpreter process. The default value is undefined and will not
use the watchdog. See "Object::Remote::Watchdog" for more information.
SEE ALSO
"Object::Remote"
perl v5.36.0 2022-10-26 Object::Remote:...PerlInterpreter(3pm)