The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/local/bin/perl -w
use strict;
use IPC::PerlSSH;

my $ips = IPC::PerlSSH->new( Host => 'casiano@etsii.ull.es' );

$ips->eval( "use POSIX qw( uname )" );
my @remote_uname = $ips->eval( "uname()" );
print "@remote_uname\n";

# We can pass arguments
$ips->eval( "open FILE, '> /tmp/foo.txt'; print FILE shift; close FILE;",
           "Hello, world!" );

# We can pre-compile stored procedures
$ips->store( "slurp_file", <<'EOS'
  my $filename = shift;
  my $FILE;
  local $/ = undef; 
  open $FILE, "< /tmp/foo.txt";
  $_ = <$FILE>;
  close $FILE;
  return $_;
EOS
);

my @files = $ips->eval('glob("/tmp/*.txt")');
foreach my $file ( @files ) {
  print "$file:\n**************\n";
  my $content = $ips->call( "slurp_file", $file );
  print "$content\n";
}