我偶尔会看到提到Perl5i。它看起来很棒,并且使事情变得容易。一些问题:
该模块是否与其他模块兼容,例如舞者,Mojolicious,XML :: RSS等?
它与Moose兼容,还是具有更好的OO功能?
如果我的脚本使用了这些,它将包装最好的CPAN模块…
use strict;
use utf8::all;
use XML::RSS::JavaScript;
use DateTime::Format::Mail;
……我应该将其替换为:
use perl5i::2;
use XML::RSS::JavaScript;
use DateTime::Format::Mail;
任何经验,好与坏,请分享。
最佳答案
我是perl5i的主要作者。
1)perl5i与其他模块兼容。如果您发现冲突,请告诉我们。 http://github.com/schwern/perl5i/issues
2)是的,它与Moose和Mouse兼容。它没有野心再造那些轮子。它对OO的贡献是自动装箱,其中非对象可以调用诸如$string->trim
之类的方法。
3)通常,您可以在现有代码中安全地使用perl5i。但是,它确实做了一些小的向后不兼容的更改,通常是对Perl毫无意义的位。需要注意的最大事情是:1)文件操作(如打开)现在会在失败时引发异常; 2)utf8 :: all会更改非文本文件的读取方式。
我在perl5i上的经历是有偏见的。我可以说,关于perl5i的最大缺点是1)有时存在错误,其词法效果超出范围2)依赖项链很大,并且3)其中一些依赖项在Windows上存在问题。积极的一面是,自动装箱和内置例外会改变多少人编写Perl的方式。
有一个FAQ,我给出了一个talk about perl5i。