IPC-PerlSSH
view release on metacpan or search on metacpan
lib/IPC/PerlSSH.pm view on Meta::CPAN
my ( $ret, @retargs ) = $self->read_message;
if( $ret eq "RETURNED" ) {
# If the caller didn't want an array and we received more than one result
# from the far end; we'll just have to throw it away...
return wantarray ? @retargs : $retargs[0];
}
elsif( $ret eq "DIED" ) {
my ( $message ) = @retargs;
if( $message =~ m/^While compiling code:.* at \(eval \d+\) line (\d+)/ ) {
$message .= " ==> " . (split m/\n/, $code)[$1 - 1] . "\n";
}
die "Remote host threw an exception:\n$message";
}
elsif( $ret eq "CLOSED" ) {
die "Remote connection closed\n";
}
else {
die "Unknown return result $ret\n";
}
}
lib/IPC/PerlSSH.pm view on Meta::CPAN
my ( $ret, @retargs ) = $self->read_message;
if( $ret eq "OK" ) {
$self->{stored}{$_} = 1 for keys %funcs;
return;
}
elsif( $ret eq "DIED" ) {
my ( $message ) = @retargs;
if( $message =~ m/^While compiling code for (\S+):.* at \(eval \d+\) line (\d+)/ ) {
my $code = $funcs{$1};
$message .= " ==> " . (split m/\n/, $code)[$2 - 1] . "\n";
}
die "Remote host threw an exception:\n$message";
}
elsif( $ret eq "CLOSED" ) {
die "Remote connection closed\n";
}
else {
die "Unknown return result $ret\n";
}
}
lib/IPC/PerlSSH/Library/Run.pm view on Meta::CPAN
use IPC::PerlSSH;
my $ips = IPC::PerlSSH->new( Host => "over.there" );
$ips->use_library( "Run", qw( system system_out system_in ) );
my ( $result, $out ) = $ips->call( "system_out", qw( ip addr ls ) );
$out == 0 or die "ip failed\n";
for (split m/\n/, $out ) {
# some processing here...
}
my $result = $ips->call( "system", qw( ip addr add 1.2.3.4/28 dev eth0 ) );
# To execute a shell command, send a single string
my $result = $ips->call( "system_in", "1",
"echo >/proc/sys/net/ipv4/ip_forward"
);
( run in 1.423 second using v1.01-cache-2.11-cpan-71847e10f99 )