在服务器代码中打印变量

Mis*_*sha -1 apache perl server

我继承了一些用Perl编写的代码,并在服务器和客户端之间发出HTTP请求.我想打印服务器代码中的一些变量,但是当我使用print语句时会引发错误.变量是标量,数组或散列.我想将输出打印到终端,仅用于调试目的.我得到的错误很少 -

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

Response header name 'self=Bio' contains invalid characters, aborting request
Run Code Online (Sandbox Code Playgroud)

一个简单的print 'test'引发错误就像

malformed header from script 'get_config': Bad header: test
Run Code Online (Sandbox Code Playgroud)

如何打印变量值而没有任何错误?

Dav*_*oss 7

你根本没有很好地解释自己.但是,从你得到的错误来看,我认为这是一个CGI程序.

CGI程序将其输出发送到STDOUTWeb服务器捕获它并以各种方式处理它.为了使其工作,程序打印到的数据STDOUT需要遵循各种规则.这些规则中最重要的可能是程序的第一个输出必须是CGI标题 - 至少,这些标题应包含Content-type:标题.

我假设您在程序发送CGI标头之前尝试显示调试输出.那不行.

但是你真的想发送调试输出STDOUT吗?这似乎是一个坏主意.如果您使用warn()而不是print()那么您的输出将STDERR转而 - 并且在大多数Web服务器中,STDERR连接到Web服务器的错误日志.

要更好地控制生成的输出warn(),请参阅CGI :: Carp模块.