当前位置:  开发笔记 > 编程语言 > 正文

我怎样才能使用32位Perl来解冻64位Storable冻结的东西?

如何解决《我怎样才能使用32位Perl来解冻64位Storable冻结的东西?》经验,为你挑选了2个好方法。

我正在尝试解冻在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;" 正如其他论坛所建议的那样



1> Axeman..:

可存储的文件说:

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

在同一节中,他们认为Storable的基本用法是局部和FAST持久性方法.但是,您可以使用nstore网络字节顺序存储持久化结构.结果是它读取和存储速度较慢,但​​适用于所有平台.

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



2> ysth..:

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

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有