【发布时间】:2014-05-16 17:45:08
【问题描述】:
我在运行 ubuntu 的 Web 服务器上设置了 OTRS,当我尝试访问同一系统上的单独 perl 应用程序时出现此错误:
[perl:error] [pid 4649] [client IP:20534]
Use of each() on hash after insertion without resetting hash iterator results in undefined behavior,
Perl interpreter: 0x7f006d2d3830 at /usr/lib/perl5/ModPerl/RegistryCooker.pm line 526.
\n, referer: http://URL/otrs/index.pl?Session=100842489b87151dd7e4495da5b1b7d138
我真的不知道是什么导致了这种情况,因为我对 perl 还很陌生。如果有人知道我可以从哪个方向开始调查,那就太好了。
【问题讨论】:
-
perl -we'%h=(a=>1,b=>2); while (each(%h)){ $h{c}=3; }' -
好的,这确实会产生相同的结果,数组越界。问题是它引用了发生错误的 perl 模块。我想我需要检查数据库是否设置了所有键
-
数组越界???不,那里没有数组。
-
@ikegami,不是数组,但所使用的结构在请求的键处没有值
-
关于“使用的结构在请求的键处没有值”你在说什么?!?!?!?!问题是插入到您正在使用
each迭代的哈希中。