Como o @GroGz diz, este problema é quase certamente causado (ou melhor, exposto) pela correção para CVE-2016-8743 - a análise de cabeçalhos HTTP foi feita muito mais rigorosa em uma atualização para o Apache lançada em 20 de dezembro de 2016 ( detalhes no link ). É provável que seu script Perl use o módulo CGI::Carp
, que inclui uma sub-rotina "warningsToBrowser". Esta sub-rotina coloca avisos desencadeados por problemas de código em comentários HTML embutidos na saída do seu programa, em vez de apenas registrá-los nos logs HTTPD. Esta sub-rotina é acionada da seguinte forma:
warningsToBrowser(1);
Se você acioná-lo antes que os cabeçalhos HTTP sejam enviados na íntegra, você verá um erro semelhante ao que você descreveu.
A solução fácil é procurar em seu código por qualquer ocorrência de:
warningsToBrowser(1);
e altere para:
warningsToBrowser(0);
Com isso, as mensagens de aviso só serão enviadas para STDERR (como a maioria dos servidores HTTPD, o Apache direcionará STDERR para o log de erros do servidor). Já que você diz "o código tem funcionado muito bem por anos" é provável que os avisos não sejam muito sérios. Confira o link para obter mais informações .