Puede ser que estes guardando en el disco c: y este necesite permisos más altos de los que estas usando.
Porque no pruebas a ver si sube primero haciendo:
Código PHP:
sub uploadFileB {
my ($sourceFile, $fileName, $dirUpload) = @_;
my $query = new CGI;
my $upload_filehandle = $query->upload($sourceFile);
#open ( UPLOADFILE, ">$dirUpload/$fileName" ) or die "$!";
#binmode UPLOADFILE;
while ( <$upload_filehandle> ) {
print; # UPLOADFILE;
}
#close UPLOADFILE;
}
Usá alguno de texto chico.
Al descriptor $upload_filehandle no tenes que cerrarlo para que borre un archivo temporal que usa/ba?