foreach $machine (@machine_name) { $cmd = "$drone_ssh"; { local $ssh; my %params; $params{"protocol"} = '2,1'; $params{"debug"} = '1'; $ssh = Net::SSH::Perl->new( "$machine", %params ); $ssh->login("$drone_user", %params); ( $stdout, $stderr, $exit ) = $ssh->cmd($cmd); undef $ssh; } if ( $exit == 0 ) { { # copy run files to drone local $scp; $scp = Net::SCP->new( "$machine", "$drone_user" ); foreach $filename (@files) { chomp( $target = $filename ); $scp->put( "$target", "$base_directory\/$work_directory\/" ) || ( $scp->{errstr} && print( $LF, "ERROR: scp $target to $machine: $scp->{errstr}" ) ); } undef $scp; } }