3

MySQL テーブルの 1 つの列に大量のデータが格納されています。Storable::nfreezeそこに保存された〜5年前のperlコードにアクセスでき、保存される前に凍結されたすべてのハッシュであることがわかります。MySQL 列はTEXTあり、テーブルはlatin1エンコードに設定されています。1 回限りのエクスポートのために、このデータを取得しようとしています。このアプリはもともと 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 ビット OS で実行されていたと思いますが、今は 64 ビット マシンでこれを試しています。次は、2.13 と 2.14 の差分を実行して、変更の原因を特定できるかどうかを確認します。

誰でもできるガイダンスはありますか?

ありがとうございました!

4

2 に答える 2

1

Format 2.7 は、Storable 2.14 で初めて使用されました。

Perl の整数のサイズ (マシンの整数のサイズではない) が原因で、実際にデータを解析できなくなります。

于 2012-12-25T17:30:34.807 に答える