我应该在什么时候使用&来调用Perl子例程?
发布时间:2020-12-15 21:26:31 所属栏目:大数据 来源:网络整理
导读:我听说人们不应该使用调用Perl subs,即: function($a,$b,...);# opposed tofunction($a,...); 我知道一个参数列表变为可选,但在某些情况下,适当的使用和你绝对不应该使用它的情况? 当忽略amp ;?时,性能增加如何发挥作用? 解决方法 海事组织,唯一有时
我听说人们不应该使用&调用Perl subs,即:
function($a,$b,...); # opposed to &function($a,...); 我知道一个参数列表变为可选,但在某些情况下,适当的使用&和你绝对不应该使用它的情况? 当忽略& ;?时,性能增加如何发挥作用? 解决方法
海事组织,唯一有时间有任何理由使用&是如果你获得或调用coderef,如:
sub foo() { print "hin"; } my $x = &;foo; &$x(); 在大多数情况下,绝对不应该使用它的主要时间是调用具有指定任何非默认调用行为的原型的子。我的意思是,一些原型允许重新解释参数列表,例如将@array和%哈希规范转换为引用。所以sub会期望这些重新解释已经发生,除非你去任何长度是必要的手工模仿,sub将获得输入与其期望的疯狂地不同。 我想主要是人们试图告诉你,你仍然在写Perl 4风格,我们有一个更清洁,更好的东西叫Perl 5现在。 关于性能,有各种方式,Perl优化子呼叫,失败,其中一个主要是内联常量。 还有一种情况,其中使用&提供了性能优势:如果您使用foo(@_)转发子调用。使用& foo比foo(@_)无限小。我不会推荐它,除非你已经明确地通过分析发现,你需要微优化。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |