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: }