my %handler = (
    QUIT    => sub {  exit( 0 ) },
    EVAL    => \&revaluate,
    STORE   => \&rstore,
    CALL    => \&rcall,
    DUMP    => \&rdump,
    INSTALL => \&rinstall,
  );
  while( 1 ) {
     my ( $operation, @args ) = read_operation( $readfunc );
     my $handler = $handler{$operation};
     if (defined($handler)) {
       $handler->(@args);
       next;
     }
     send_operation( $writefunc, "DIED", "Unknown operation $operation\nARGS: @args" );
  }
¿Que relación existe entre una tabla de saltos y una aproximación OOP al problema
de los condicionales en cascada?
¿Que solución es mejor?
IPC::PerlSSH si en medio de la ejecución de una rutina remota 
se ejecuta un print?
EVAL son ejecutados en una subrutina
(líneas 95 y 101) afecta al ámbito de una declaración ours:
 92     if( $operation eq "EVAL" ) {
 93        my $code = shift @args;
 94
 95        my $subref = eval "sub { $code }";
 96        if( $@ ) {
 97           send_operation( $writefunc, "DIED", "While compiling code: $@" );
 98           next;
 99        }
100
101        my @results = eval { $subref->( @args ) };
102        if( $@ ) {
103           send_operation( $writefunc, "DIED", "While running code: $@" );
104           next;
105        }
106
107        send_operation( $writefunc, "RETURNED", @results );
108        next;
109     }
¿Cómo puede solucionarse el problema de la ''modificación del ámbito''?
¿Es posible seguir declarando variables globales dentro de un eval?
Comente la siguiente sesión con el depurador:
nereida:~/LEyapp> perl -wde 0
Loading DB routines from perl5db.pl version 1.28
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
main::(-e:1):   0
  DB<1> x eval '{ use strict; our $x = 4 }'
0  4
  DB<2> x eval '{ use strict; print $x  }'
Variable "$x" is not imported at (eval 8)[(eval 7) line 1.
0  undef
  DB<3> x eval '{ use strict; our $x; print "$x\n"  }'
4
0  1
evaluado es mas complicada que la de un programa
guardado en un fichero. ¿Sabría explicar la causa? ¿Es posible guardar 
el código en módulos, comprobar su correcta compilación y enviarlos después?
Consulte los módulos  Module::Which  y  Module::ScanDeps :
nereida:~/src/perl/testing> perl -wde 0
main::(-e:1):   0
  DB<1> use Module::Which
  DB<2> $info = which('Module::Which', 'YAML')
  DB<3> x $info
0  HASH(0x858f0f0)
   'Module::Which' => HASH(0x85ab4cc)
      'base' => '/usr/local/share/perl/5.8.8'
      'path' => '/usr/local/share/perl/5.8.8/Module/Which.pm'
      'pm' => 'Module::Which'
      'version' => 0.0205
   'YAML' => HASH(0x883be60)
      'base' => '/usr/local/share/perl/5.8.8'
      'path' => '/usr/local/share/perl/5.8.8/YAML.pm'
      'pm' => 'YAML'
      'version' => 0.62
El módulo  Module::ScanDeps  permite el análisis de dependencias.
Provee el ejecutable  scandeps.pl :
nereida:~/src/perl/YappWithDefaultAction/examples> scandeps.pl Rule6.pm 'AutoLoader' => '5.63', 'Cwd' => '3.18', 'File::Spec::Unix' => '1.5', 'File::Spec' => '3.18', 'Parse::Eyapp::YATW' => 'undef', 'List::MoreUtils' => '0.21', 'Parse::Eyapp::Base' => 'undef', 'Parse::Eyapp::Node' => 'undef', 'Parse::Eyapp::Driver' => '1.069577',
bind que provee una interfaz 
local a la máquina remota. ¿Que desventajas y ventajas le ve a
este diseño de la API?
IPC::PerlSSH 
de un servicio de llamada de procedimiento remota (RPC)
que no estuviera limitado a argumentos de tipo ''cadena''?
Esto es que se admitieran en el cliente Perl llamadas al servidor Perl
con estructuras anidadas (vea los ejemplos 
examples/nested.pl y
examples/nested2.pl en la distribución
de 
GRID-Machine-0.07.tar.gz
?
Al ejecutar este fragmento de código:
pp2@nereida:~/src/perl/GRID_Machine/examples$ sed -ne '18,27p' nested.pl | cat -n
 1  $machine->sub(
 2    rmap => q{
 3      my $f = shift; # function to apply
 4      map { $f->($_) } @_;
 5    },
 6  );
 7
 8  my $cube = sub { $_[0]**3 };
 9  my @cubes = $machine->rmap($cube, 1..3)->Results;
10  { local $" = ','; print "(@cubes)\n"; }
se obtiene la salida:
pp2@nereida:~/src/perl/GRID_Machine/examples$ nested.pl Linux orion 2.6.8-2-686 #1 Tue Aug 16 13:22:48 UTC 2005 i686 (1,8,27)Observe que la función pasada como parámetro
sub { $_[0]**3 }
es definida en la máquina local y llamada en la remota.
Makefile.PL en la distribución
GRID-Machine-0.07.tar.gz
.
¿Que hace la función  MY::postamble ?
put get a los objetos GRID::Machine que permita la copia
de ficheros entre las dos máquinas. El método put
permite transferir ficheros de la máquina local a la máquina remota.
Por ejemplo:
$beo->put([ qw(file1 file2 file3) ]);copiaría los ficheros
file1,
file2 y
file3
en el directorio actuál en la máquina remota.
Una llamada como:
$beo->put([ qw(file1 file2 file3) ], 'path');copiaría los ficheros
file1,
file2 y
file3
en el directorio path de la máquina remota.
Una fuente de inspiración puede ser el código del módulo 
http://search.cpan.org/~ivan/Net-SCP/
.
Use File::Spec para escribir código independiente del sistema operativo.
Casiano Rodríguez León
