Muchas gracias por responder, Explorer, el error es como este:

pero con el ejecutable perl.exe en lugar de basichacked.exe.
Un par de veces le di a depurar, y se abrió Visual C, pero con las instrucciones en
asm, cualquiera se mete. Intentaba ver si veía algún nombre de dll o algo para tener más pistas, pero nada.
Si, cuando estaba mirando, si usaba fork() para Windows, me di cuenta que no crea dos procesos como en Linux (independientes) sino que crea un hilo (que comparten muchas zonas de la memoria para todos los hilos. No sé si en Perl fork() para Windows seguirá esta teoría de los hilos o no, pero no modifico variables).
Lo malo ha sido que funcionó bien en esas pruebas y al final, suponía que estaba haciendo algo mal...
Por lo que me comentas de open3(), fork(), buscaré algún módulo para lanzar un proceso bajo Windows y poder guardar
stdout y
stderr en ficheros, mientras el programa
main continúa...
Y echaré un vistazo a ver si con alguna librería para abrir procesos/hilos de la API de Windows.
Lástima. Gracias, paisano.