我有用于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模块重建脚本(它的文档包含执行此操作的说明),或运行正常的非字节码脚本.但是,两者都要求您仍然具有正常的非字节码版本.