如何在system/perl升级后缓解local :: lib问题?

Dem*_*ian 0 perl xs locallib

我们的系统管理员最近升级了我的操作系统和perl(到5.12.3).当我加载local :: lib环境变量时,它似乎打破了依赖于xs的任何东西:

demianshell~> perl -e 'use Storable; store({a=>1}, 'test')'
demianshell~> eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)
demianshell~> perl -e 'use Storable; store({a=>1}, 'test')'
Assertion ((svtype)((_svi)->sv_flags & 0xff)) >= SVt_RV failed: file "Storable.xs", line 3753 at blib/lib/Storable.pm (autosplit into blib/lib/auto/Storable/_store.al) line 263, at -e line 1
Run Code Online (Sandbox Code Playgroud)

有一个简单的解决方案吗?

Stu*_*att 6

如果你说你唯一的Perl已经从Perl 5.12.*以外的东西升级了,并且你的local::lib安装的二进制组件没有,那么对不起,除了将local::lib模块重建到新的模块之外,没有简单的解决方案Perl的.Perl XS组件在主要的Perl版本中不可行.

这就是为什么不相信任何Perl系统通常是个好主意,因为它超出了你的控制范围.使用您自己的Perl安装始终是一个很好的计划,因此您可以使用App::perlbrew或仅在某处单独安装Perl 来控制它.

  • http://stackoverflow.com/questions/6100492/how-to-use-a-cpanplus-autobundle-to-update-a-new-version-of-perl (2认同)