Печать переменной в коде сервера - PullRequest
0 голосов
/ 24 апреля 2018

Я унаследовал некоторый код, который написан на Perl и делает HTTP-запросы между сервером и клиентом. Я хочу напечатать несколько переменных, которые есть в коде сервера, но это вызывает ошибки, когда я использую оператор печати. Переменными являются скаляры, массивы или хэши. Я хочу напечатать вывод на терминал и только для целей отладки. Я получаю несколько ошибок:

malformed header from script 'get_config': Bad header: self=$VAR1 = bless( {

Response header name 'self=Bio' contains invalid characters, aborting request

Простое print 'test' вызывает ошибку как

malformed header from script 'get_config': Bad header: test

Как напечатать значения переменных без ошибок?

1 Ответ

0 голосов
/ 24 апреля 2018

Вы не очень хорошо объяснили себя.Но из ошибок, которые вы получаете, я предполагаю, что это CGI-программа.

CGI-программа отправляет свои выходные данные на STDOUT, где веб-сервер перехватывает их и обрабатывает различными способами.Чтобы это работало, данные, которые ваша программа печатает на STDOUT, должны соответствовать различным правилам.Вероятно, наиболее важным из этих правил является то, что первым выводом из вашей программы должны быть заголовки CGI - и, по крайней мере, эти заголовки должны включать заголовок Content-type:.

Я предполагаю, что вы пытаетесьпокажите выходные данные отладки до того, как ваша программа отправит заголовки CGI.Это не сработает.

Но вы действительно хотите отправить отладочный вывод на STDOUT?Это кажется плохой идеей.Если вы используете warn() вместо print(), то ваш вывод будет вместо STDERR - и на большинстве веб-серверов STDERR подключен к журналу ошибок веб-сервера.

Для большего контроля надвывод, сгенерированный warn(), см. модуль CGI :: Carp .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...