print "Content-type:text/html\n\n"
Почему вы не используете модуль CGI с методом заголовка?
Когда я удаляю "требовать", тогда он отлично работает
Тогда ваш файл error_log должен сообщить вам, что происходит не так. Вы не проверяете наличие файлов, прежде чем потребовать это. Вы также должны быть в том числе:
use strict;
use warnings;
use diagnostics;
и проверьте запуск файла из командной строки. Вы должны прочитать об отладке программ на Perl и CGI.