Заставить Perl работать в 32-битном режиме - PullRequest
2 голосов
/ 03 августа 2011

У нас есть старое приложение на Perl. Недавно мы переехали на новый сервер, на котором работает 64-битная версия Ubuntu. Старое приложение использует функции упаковки / распаковки и побитовые операции, и теперь оно завершается сбоем, потому что побитовые операции возвращают 64-битные целые числа вместо 32-битных.

Есть ли способ заставить Perl перейти в 32-битный режим? Если нет, есть ли способ установить 32-битный Perl на 64-битную машину?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 03 августа 2011
Есть ли способ заставить Perl перейти в 32-битный режим?

Нет, но вы можете переключиться на использование правильных (переносимых) шаблонов упаковки / распаковки и, если необходимо, используйте & 0xFFFFFFFF при битовом повороте.

Если нет, есть ли способ установить 32-битный Perl на 64-битную машину?

С INSTALL:

Для 64-битных систем не требуется ни -Duse64bitint, ни -Duse64bitall. В этих системах это может быть режим компиляции по умолчанию, и в настоящее время нет никакой гарантии, что передача опции use64bitall процессу Configure создаст 32-битный perl. Реализация опций -Duse32bit * запланирована на будущий выпуск perl.

Так что ответ: возможно, но, вероятно, нет.

1 голос
/ 17 апреля 2012

Похоже, что вы можете установить 32-битные пакеты, добавив суффикс имени пакета: i386.По крайней мере, это работало для меня при установке библиотеки.

$ sudo apt-get install libelf1: i386

Я не знаю, работает ли это с не-библиотеками, так как, скорее всего, будетконфликты имени файла и пути.С библиотеками, 32-битные и 64-битные библиотеки упакованы для разделения на отдельные каталоги.

...