我偶尔会看到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;
任何经验,无论好坏,请分享。
答案 0 :(得分:10)
我是perl5i的主要作者。
1)perl5i与其他模块兼容。如果您发现冲突,请告知我们。 http://github.com/schwern/perl5i/issues
2)是的,它与Moose和Mouse兼容。它没有重塑这些车轮的野心。它对面向对象的贡献是自动装箱,其中非对象可以有像$string->trim
那样的方法。
3)通常,您可以安全地将perl5i与现有代码一起使用。但是,它确实做了一些小的向后不兼容的更改,通常是Perl的一些无论如何都没有意义。需要注意的最重要的事情是:1)文件操作(如open)现在会在失败时抛出异常,2)utf8 :: all会更改非文本文件的读取方式。
我对perl5i的体验有偏见。我可以说perl5i最大的负面影响是1)有时会出现bug并且它的词汇效应泄漏到范围之外2)依赖链非常大,3)其中一些依赖项在Windows上存在问题。积极的一面是,自动装箱和内置异常会改变人们写Perl的方式。
有一个FAQ,我提供talk about perl5i。