Another option, assuming you've got a working SSH connection between the machines is to use Net::SSH::Perl.
Note: Cpan search seems to be having issues at the moment so here's an alternative location - Net::SSH::Perl.
sub run_remote_script {
use Net::SSH::Perl;
my ($host,$user,$pass,$opt1,$opt2,$opt3) = @_;
my $cmd = "/path/to/remote_script $opt1 $opt2 $opt3";
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user,$pass);
my %output;
($output{stdout},$output{stderr},$output{exit}) = $ssh->cmd($cmd);
return \%output;
}
|