对于那些不知道Perl的
autobox的人来说,它是一个模块,它提供了内置原语的方法,甚至可以覆盖它们.
# primitives
'a string'->toupper();
10->to(1); # returns [10,9,8,7,6,5,4,3,2,1]
# Arrays,array refs
[qw(A B C D E)]->for_each( sub { ... } );
@array->length()
# Hashes,hash refs
{ key => 'value',key2 => 'value2' }->values()
%hash->keys()
# Even specify your own base class...
use autoBox SCALAR => 'Foo';
它总体上使内置类型的方法更像是对象,简化了一些任务,并使其他人看起来更加明显.
然而…
autobox文档说有performance penalties,有些只是简单地调用对象上的方法,远远超过了标准语法. And then,there’s a few caveats about its use in evals (specifically,string evals) that might,in some circumstances,cause issues.它也似乎不符合许多Perl发行版的标准.
使用autoBox真的值得吗?
解决方法
那么,你有没有希望有一个模块可以在你发现大约
autobox之前做过
autobox?
如果答案是“是”,那么你应该使用它.您可能还想通过提交错误报告并修复它们来帮助其开发,如果您有机会的话.
不幸的是,我陷入“酷,但…”的营地,所以我不能再为你提供更多的见解.