use Net::OpenSSH::Parallel; my $pssh = Net::OpenSSH::Parallel->new; for my $server (@servers) { $pssh->add_host($server, timeout => 10, passwd => $passwd); } $pssh->push('*', cmd => {stdout_file => "/tmp/uname-%HOST%"}, 'uname'); $pssh->push('*', cmd => {stdout_file => "/tmp/dmesg-%HOST%"}, 'dmesg'); ... $pssh->run;