У меня была такая же проблема в другом контексте. По сути, я думаю, что проблема ОП была решена в комментариях к вопросу, eryksun, с предложением:
Установлен ли для исполняемого параметра пустая строка?
Используя Tomcat 7.0, я все настроил так, чтобы сервер не выдавал никаких ошибок при запуске, и он позволил мне запросить у WEB-INF / cgi ответ 200 «ОК», но он дал пустой HTML страница, как отмечено в OP.
Решением было расширение параметров по умолчанию до conf / web.xml:
<servlet>
<servlet-name>cgi</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi</param-value>
</init-param>
**<init-param>
<param-name>executable</param-name>
<param-value>c:\myexact\path\to\perl.exe</param-value>
</init-param>
<init-param>
<param-name>passShellEnvironment </param-name>
<param-value>true</param-value>
</init-param>**
<load-on-startup>5</load-on-startup>
</servlet>
Мои дополнения выделены жирным шрифтом (**) выше.
В основном критическая информация поступает от источника, предложенного eryksun:
http://tomcat.apache.org/tomcat-7.0-doc/cgi-howto.html