首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用32位Perl解冻64位Storable冻结的东西?

如何使用32位Perl解冻64位Storable冻结的东西?
EN

Stack Overflow用户
提问于 2010-01-07 14:04:47
回答 2查看 2.1K关注 0票数 6

我正在尝试解冻一个在64位Solaris (生产)机器上使用Storable冻结的数据库BLOB。当我尝试解冻32位Windows (开发) PC时,我收到"Byte order is not compatible error“(字节顺序不兼容错误)。

代码语言:javascript
复制
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

确切的错误是:

代码语言:javascript
复制
(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行:

代码语言:javascript
复制
my $object = thaw( $item->{object} );

有人知道如何在32位机器上解冻这个对象吗?

注意:该对象是有效的,并且可以在64位生产机器上运行。我已经按照其他论坛上的建议尝试了"$Storable::interwork_56_64bit = 1;“。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-07 15:41:46

Storable文档中写道:

Storable为构建Storable的C编译器写入一个文件头,其中包含各种C语言类型的大小(当不是按网络顺序编写时),并将拒绝加载由不在相同(或兼容)架构上的Storable编写的文件。

在同一节中,他们建议Storable的基本用法是本地快速持久化方法。但是,您可以使用nstore以网络字节顺序存储持久化结构。其结果是,它的读取和存储速度较慢,但可以在所有平台上运行。

因此,建议您使用64位计算机使用nstore以网络顺序读取和重新存储数据。

票数 9
EN

Stack Overflow用户

发布于 2010-01-07 14:24:08

我知道文档表明这应该是可能的,但我从来没有能够让它工作,除非在64位机器上使用nfreeze/nstore*。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2018534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档