Perl脚本错误:byteloader版本不匹配

我有用于TSM报告的perl脚本,它在AIX版本5中运行良好.将AIX升级到版本6后,脚本无效.我收到这个错误
byteloader version mismatch expected 0.5,got 0.6 .

我想升级后的操作系统perl也从perl 5.8.2(工作)升级到5.8.8(不工作).

我该怎么做才能使这个脚本在AIX 6上运行?

解决方法

你的perl脚本显然使用了 bytecode.字节码有点像编译代码.它是预解析的代码,比正常的脚本代码更有效地加载(非常糟糕的解释,wikipedia可能做得更好).
但是在perl中,运行字节码仅限于它构建的模块版本.所以这意味着你使用ByteLoader 0.5来构建字节码,但是你运行它的盒子的版本是0.6.

解决方案是使用较新版本的ByteLoader模块重建脚本(它的文档包含执行此操作的说明),或运行正常的非字节码脚本.但是,两者都要求您仍然具有正常的非字节码版本.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...