Perl/Apache错误日志消息截断



我在发送给STDERR的Perl警告消息中遇到截断问题。

我使用Data::Dumper来吐出一些相当深的数据结构,但它们在大约8000字节后被截断。我在Apache2.2下运行,所以可能会发生一些事情,但我找不到任何限制errorLog条目的配置设置。Data::Dumper正在生成我所期望的完整数据,因为如果我将其打印到屏幕上,而不是向errorLog发出警告,我可以看到所有数据。

以前有人遇到过这种情况吗?

您应该根据需要设置变量$Data::Dumper::Maxdepth

例如:

#!/usr/bin/perl 
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Maxdepth = 2;
my $a = { 
    b => {
        c => {
            d => {
                e => 'Hello'
            }   
        }   
    }   
};
print Dumper($a);

它给出以下输出:

$VAR1 = {
          'b' => {
                   'c' => 'HASH(0x8cb688c)'
                 }
        };

代替没有深度限制的默认输出:

$VAR1 = {
          'b' => {
                   'c' => {
                            'd' => {
                                     'e' => 'Hello'
                                   }
                          }
                 }
        };

最新更新