$progress = 2; if( $progress == 2){ for(;;){ if( $progress == 0){last} } } #### sub sftp{ $|++; while(1){ if($die == 1){ goto END }; if ( $go == 1 ){ my $seconds = 120; my %args = (host=>$server, user=>$user, timeout=>$seconds); my $sftp = Net::SFTP::Foreign->new(%args); if ($sftp->error){ goto line; } $sftp->put("$waylcl\\waytemp", "$wayrmt/waytemp"); if ($sftp->error){ goto line; } line: if($die == 1){ goto END }; undef $sftp; #close current sftp $go = 0; #turn off self before returning } else { sleep 1 } # sleep if $go == 0 } END: } #### sub sftp{ $|++; while(1){ last if $die == 1; if ( $go == 1 ){ my $seconds = 120; my %args = (host=>$server, user=>$user, timeout=>$seconds); my $sftp = Net::SFTP::Foreign->new(%args); last if ($sftp->error); $sftp->put("$waylcl\\waytemp", "$wayrmt/waytemp"); last if ($sftp->error); last if $die == 1; undef $sftp; #close current sftp $go = 0; #turn off self before returning } else { sleep 1; } # sleep if $go == 0 } } #### $sftp->put("$waylcl\\waytemp", "$wayrmt/waytemp");