use Net::OpenSSH; my $ssh = Net::OpenSSH->new($host); die "Couldn't establish SSH connection: ".$ssh->error if $ssh->error; my ($in, $pid) = $ssh->pipe_in('bash','-s') or die "pipe_in failed: ".$ssh->error; print $in <<'EOF'; # ... EOF close $in or die "close failed";