【问题标题】:I'm getting "CGI Error: File is not a perl storable" error我收到“CGI 错误:文件不是 perl 可存储”错误
【发布时间】:2013-04-10 14:22:13
【问题描述】:

我的 perl 突然出现了问题,并且无缘无故地开始向我抛出这个异常:

CGI 错误: File is not a perl storable at blib\lib\Storable.pm (autosplit into blib\lib\auto\Storable_retrieve.al) line 380, at C:/myapp/src/main/perl/lib/ Output.pm 第 1831 行

有人知道“文件不是可存储在 blib\lib\Storable.pm 中的 perl”是什么以及如何解决这个问题吗?

谢谢, 去

【问题讨论】:

  • 发布这样的问题时,您真的应该发布导致错误的代码。尽管即使没有代码,ikegami 也能猜出答案:)
  • 正如我在下面所写的,我的 SVN 中没有代码更改。这个问题就这样开始自行发生了。然而,我已升级到 SSD,因此图像可能已损坏并影响了我的 perl 安装。
  • 但是这个错误并不意味着代码发生了变化。这意味着您正在阅读的文件已更改。
  • 对,这就是为什么我怀疑我的旧 HDD 的图像在传输到 SSD 时已损坏并且影响了该文件...

标签: perl cgi storable


【解决方案1】:

你做了类似的事情

use Storable qw( retrieve );
my $data = retrieve('file.dat');

并且file.dat 不是 Storable 可识别的格式。

【讨论】:

  • 嗯,你会这么认为,但我的 SVN 说没有文件被修改。所以我没有对我的 perl 代码进行任何更改,但突然我开始收到这个异常,我不知道如何处理它。
  • perl -MStorable -le"binmode STDIN; read(STDIN, $h, 12); print for $], $Storable::VERSION, unpack 'H*', $h" < file.dat 的输出是什么(将 file.dat 替换为给出错误的文件名。)它给出了一些版本和文件的前 12 个字节。
  • 没关系,我解决了这个问题。一些 perl 文件在我的升级中为空,并导致 perl 出现此问题。
猜你喜欢
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 2016-11-03
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 2018-09-01
相关资源
最近更新 更多