【发布时间】:2012-12-11 12:14:37
【问题描述】:
我有一堆数据存储在 MySQL 表的单个列中。我可以访问将它存储在那里的约 5 年历史的 perl 代码,并且可以看到它是在存储之前用Storable::nfreeze 冻结的所有哈希值。 MySQL 列是TEXT,表设置为latin1 编码。我现在正在尝试检索这些数据以进行一次性导出。我知道该应用程序最初是在 perl 5.8.x 上运行的,所以我正在尝试使用 perl-5.8.8。不幸的是,我不知道使用的是什么版本的 Storable。
我第一次尝试使用最新的 Storable,2.39。这给了我:
Storable binary image v32.32 more recent than I am (v2.9) at
perlbrew/perls/perl-5.8.8/lib/5.8.8/darwin-2level/Storable.pm line 417`
使用 Storable-2.14 我得到了
Storable binary image v32.32 more recent than I am (v2.7) at blib/lib/Storable.pm
(autosplit into blib/lib/auto/Storable/thaw.al) line 363
使用 Storable-2.13 我得到了
Storable binary image v2.7 more recent than I am (v2.6) at blib/lib/Storable.pm
(autosplit into blib/lib/auto/Storable/thaw.al) line 363
>= 2.14 中不合理的高二进制图像数字让我认为解析数字的方式发生了一些变化。我相信这段代码可能在 32 位操作系统上运行,现在我正在 64 位机器上尝试这个,这可能是相关的吗?接下来是我将尝试运行 2.13 和 2.14 之间的差异,看看我是否能找出导致变化的原因。
任何人都可以提供指导吗?
谢谢!
【问题讨论】:
-
我怀疑 32 位 / 64 位问题可能确实相关。尝试在 32 位版本的 perl 上运行它,看看是否有帮助。