强制Perl在32位模式下工作

时间:2011-08-03 18:24:02

标签: perl ubuntu 32bit-64bit

我们有一个旧的Perl应用程序。最近我们搬到了一台运行64位Ubuntu的新服务器。 旧应用程序使用打包/解包函数和按位操作,现在它失败,因为按位操作返回64位整数而不是32位。

有没有办法强制perl进入32位模式? 如果没有,有没有办法在64位机器上安装32位perl?

谢谢!

2 个答案:

答案 0 :(得分:3)

有没有办法强制perl进入32位模式?

不,但您可以切换到使用正确的(便携式)打包/解包模式,并在适当的位置使用& 0xFFFFFFFF

如果没有,有没有办法在64位机器上安装32位perl?

来自INSTALL

本地64位系统既不需要-Duse64bitint也不需要-Duse64bitall。在这些系统上,它可能是默认的编译模式,并且目前无法保证将任何use64bitall选项传递给Configure进程将构建一个32位perl。计划为将来的perl版本实现-Duse32bit *选项。

所以答案是:也许,但可能不是。

答案 1 :(得分:1)

您可以通过使用以下命令后缀软件包名称来安装32位软件包:i386。在安装库时,至少这对我有用。

$ sudo apt-get install libelf1:i386

我不知道这是否适用于非库,因为可能存在文件名和路径冲突。对于库,32位和64位库被打包成单独的目录。