sub createDir { use 5.011; use Net::SFTP::Foreign; my ( $dirName, $sftp ) = @_; if ( $sftp->test_e($dirName) ) { if ( !$sftp->test_d($dirName) ) { print "Remove file(y/n)?: "; my $prompt1 = ; chomp $prompt1; if ( $prompt1 eq ( "y" | "Y" ) ) { if ( fork() == 0 ) { # arm the alarm clock alarm(35); say "you got 35 seconds for process $$"; # create a child process my $return3 = $sftp->remove($dirName); say "return3 is $return3"; createDir($dirName, $sftp); say "process $$ executed here"; exit(0); } } #end if that tests !$sftp->test_d($dirName) next brace } if ( $sftp->test_d($dirName) ) { say "execution was here"; return "Directory $dirName already exists!"; } else { say "Can't create $dirName because there's a file in the way!"; handleDirCreateError( @_, $sftp->error ); } } my $success = $sftp->mkdir($dirName) or handleDirCreateError( @_, $sftp->error ); return $success; }