【问题标题】:How do I pass an aliased array reference in a MooseX::Method::Signatures method?如何在 MooseX::Method::Signatures 方法中传递别名数组引用?
【发布时间】:2012-01-26 11:04:45
【问题描述】:

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 吗?

【问题讨论】:

    标签: perl moose method-signature


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 2013-06-16
      相关资源
      最近更新 更多