如何在MooseX :: Method :: Signatures方法中传递别名数组引用?

时间:2012-01-26 11:04:46

标签: perl moose method-signature

MooseX::Method::Signatures应该能够获取数组引用作为参数并将其用作方法中的普通数组,请参阅Aliased references in Method::Signatures

使用文档中的代码作为示例,我写道:

package MethodSignatures;

use strict;
use warnings;

use Moose;
use MooseX::Method::Signatures;

method add_one(\@foo) {
    $_++ for @foo;
}

my @bar = ( 1, 2, 3 );
MethodSignatures->add_one(\@bar);    # @bar is now (2,3,4)

然而,它失败了:

')' expected whilst parsing signature near '@foo' in '\@foo' at d:/workspace/lib/tools/Perl/site/lib/MooseX/Method/Signatures/Meta/Method.pm line 199

这是因为我使用的是Perl 5吗?

1 个答案:

答案 0 :(得分:4)

请注意,MooseX::Method::SignaturesMethod::Signatures不同。前者未提及原型允许的\@foo语法,因此可能是失败的原因。

这两个模块都是针对perl 5的,所以这不应该是错误的原因。