2012-01-26 8 views
2

MooseX::Method::Signaturesは、配列参照をパラメータとして取得し、メソッド内で通常の配列として使用できるはずです。Aliased references in Method::Signaturesを参照してください。例として、ドキュメント内のコードを使用してMooseX :: 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を使用していますので、このですか?

答えて

4

MooseX::Method::SignaturesMethod::Signaturesとは異なるものです。前者は、プロトタイプに許可されているように\@fooの構文を言及していないので、失敗の原因になる可能性があります。

両方のモジュールはperl 5用ですので、これはエラーの理由であってはなりません。

関連する問題