#!/usr/bin/perl use strict; use warnings; use Net::OpenSSH; my @hosts=( 'user@server1.com','user@server2.com','user@server3.com' ); my $cmd='uptime'; my %conn = map { $_ => Net::OpenSSH->new($_) } @hosts; my @pid; for my $host (@hosts) { open my($fh), '>', "/tmp/out-$host.txt" or die "unable to create file: $!"; push @pid, $conn{$host}->spawn({stdout_fh => $fh}, $cmd); } waitpid($_, 0) for @pid; exit;