Как я могу использовать 32-разрядный Perl для размораживания чего-то зафиксированного с 64-разрядным Storable?

Я пытаюсь таять база данных BLOB, которая была заморожена с помощью Storable на 64-разрядном Солярисе (производство) машина. То, когда я пытаюсь таять в 32-разрядном Windows (разработка) ПК, я получаю "Порядок байтов, не является совместимой ошибкой".

perl -v (on solaris)
This is perl, v5.8.8 built for i86pc-solaris-64

perl -v (on Windows)
This is perl, v5.10.1 built for MSWin32-x86-multi-thread

Точная ошибка:

(Unable to read: Byte order is not compatible at blib\lib\Storable.pm (autosplit into  blib\lib\auto\Storable\thaw.al) line 415, at ../handlers/Search/actions/SearchSendQueue.pm line 124 )

строка 124 из SearchSendQueue.pm:

my $object = thaw( $item->{object} );

Кто-либо знает, как я могу таять этот объект на 32-разрядной машине?

Примечание: Объект является доступным и рабочим на производственной машине на 64 бита. Я уже попробовал "$Storable:: interwork_56_64bit = 1"; как предложено на других форумах.

5
задан brian d foy 7 January 2010 в 13:10
поделиться

2 ответа

В документации

Storable говорится:

Storable записывает заголовок файла, который содержит размеры различных типов языка C для компилятора C, который построил Storable (если запись не выполняется в сетевом порядке), и будет отказываться загружать записанные файлы. с помощью Storable не на той же (или совместимой) архитектуре.

В том же разделе они предполагают, что основным использованием Storable является локальный и FAST постоянный метод. Однако вы можете использовать nstore для хранения устойчивой структуры в порядке байтов сети . В результате он будет читать и хранить медленнее, но работает на всех платформах.

Таким образом, предлагается использовать 64-битную машину для чтения и повторного сохранения данных в сетевом порядке с помощью nstore .

8
ответ дан 18 December 2019 в 14:46
поделиться

Я знаю, что в документации указано, что это возможно, но мне никогда не удавалось заставить его работать, кроме как с помощью nfreeze / nstore * на 64-битной машине.

5
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: