我有一堆数据存储在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之间运行差异,以查看是否能找出导致更改的原因。

任何人都可以提供指导吗?

谢谢!

最佳答案

2.7格式首先与Storable 2.14一起使用。

Perl整数的大小(而不是机器整数的大小)的确会导致无法解析数据。

10-07 21:17