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

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                                Object::Remote::Role::Connector::PerlInterpreter(3pm)