文法チェック用の CGI としては kent さんの Perl Checker がありますが、
例えば以下のような CGI(test.cgi) だと (1行目は synapse の場合) syntax OK になってしまいます。
---- #!/www/bin/perl $x=&xxx; print<test $x test
EOM exit; sub xxxy{ return 255; } ----
しかしこの CGI には欠陥があって xxx などという関数は定義されてないのです。
そのため実行時エラーとなってしまいます。
パスの test.cgi のところに w.cgi を置いて w.cgi/test.cgi と書き換え、実行させてみると
Undefined subroutine &main::xxx called at ./test.cgi line 3.
とエラーメッセージがでます。
また sendmail などを呼び出していたりすると、その実行時エラーにもメッセージがでて
困ったことになります。
こういう時も w.cgi を使えば原因特定の手助けになります。