Si se trata de un error de sintaxis en el programa, ponlo aquí para que lo veamos.
Si lo que salta es el mensaje del die, es que system() ha devuelto un valor 0, por lo que eso puede significar que el programa que llamas ha funcionado bien. ¿No lo ha hecho?
En definitiva... que estaría bien ver el mensaje de error.
También puedes probar a llamarlo así:
Using perl Syntax Highlighting
system ('C:\perl\bin\perl.exe', 'prepro.pl', 'PARAMS.in', 'FAST.template', "$i.in") == 0
or die "No se pudo crear input para FAST: $!";
or die "No se pudo crear input para FAST: $!";
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Lo que no sabemos es qué valor debe devolver system() desde el perl.exe que llamas para considerar que ha funcionado o no... en esta última línea he supuesto que si devuelve '0' es que sí ha funcionado bien.