【发布时间】:2010-01-07 06:04:47
【问题描述】:
我正在尝试解冻在 64 位 Solaris(生产)机器上使用 Storable 冻结的数据库 BLOB。当我尝试在 32 位 Windows(开发)PC 上解冻时,我收到“字节顺序不兼容错误”。
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 )
SearchSendQueue.pm 的第 124 行:
my $object = thaw( $item->{object} );
有人知道如何在 32 位机器上解冻这个对象吗?
注意:该对象是有效的,并且在 64 位生产机器上工作。 我已经尝试过“$Storable::interwork_56_64bit = 1;”按照其他论坛的建议。
【问题讨论】:
-
如果只是字节序问题,你可以试试用 pack() 反转字节序?
-
这并不能直接回答您的问题,但 64 位 Intel 机器很便宜,而 Solaris 是免费的。即使您想主要运行 Windows,Solaris 虚拟机也可以提供帮助。我很高兴我可以使用一台机器在我选择的几乎任何平台上进行开发。 :)
标签: perl endianness storable