请教PANIC的问题,论坛搜索也搜索不到

你可能碰到Perl里面的bug...

通常会Panic就表示你需要重新安装Perl的环境了..
在装新的Perl之前....最好检查C/C++是ok的...
还有包含相对应的library...

perl 5.6.0很旧了..而且很多新版本的module可能不能用.....
如果你是因为用了某个module而不能用..
建议你装个旧一点的版本试试看...
我这儿也有perl 5.6的机器...
昨天在perl5.8上试过,通过
没有报错
不过我们的生产机上perl升级可不是随便说说就升的。晕死

这两天依然报相同的错误


经过几天的思考,好像是重载死亡函数那里出的问题
代码帖出来大家帮忙看看

$SIG{'__DIE__'} = sub { writelog(shift); close($ErrFD) if(defined($ErrFD)); exit 1;};# 重载死亡函数

大家帮忙看看这里会有什么问题吗谢谢
错误报了一个月啦
郁闷
提供你一个我过去的经验..
我之前也曾在AIX上的 perl 5.6上面写代码..
结果不管怎麽写, 大概改写了三四个版本...只要一执行就会产生core...
但是同样的代码在perl 5.8上面一点问题也没有...

後来与同仁讨论後猜测 , 是perl 5.6底层的C代码使用 C/C++ library之间有bug..
或者我的代码用到了perl的 Bug部分.....

建议你找个半夜, 把perl给更新了...
安装的过程中...
perl执行档..会在/usr/local/bin/perl5.8.0..
只要手动改一下/usr/bin/perl 的 symbolic link..即可...
当然事前需要经过测试....确认影响最小再动手...
不然会变得有点麻烦..

也可以在另一台不是上线的机器相同OS版本的机器上..安装..然後用tar 的方式把perl copy到线上主机,
注意不要包含/usr/bin/perl
然後找个时间点..把/usr/bin/perl 的 symbolic link修改掉..
当然建议最好事先最好备份..以免出问题..

最後如果没有办法..就是你要改变写法... 找到不会产生 panic的写法...
good luck...