Salvation::Method::Signatures - Реализация сигнатур для методов
package Some::Package; use Salvation::Method::Signatures; # use Test::More tests => 3; method process( ArrayRef[ArrayRef[Str]] :flags!, ArrayRef[HashRef(Int :id!)] :data! ) { # isa_ok( $self, 'Some::Package' ); # is_deeply( $flags, [ [ 'something' ] ] ); # is_deeply( $data, [ { id => 1 } ] ); ... } package main; Some::Package -> process( flags => [ [ 'something' ] ], data => [ { id => 1 } ], );
Делает то же, что делают другие реализации сигнатур: проверяет тип аргументов метода, само разбирает @_ и инжектит переменные в блок.
@_
http://perlcabal.org/syn/S06.html#Signatures MooseX::Method::Signatures Method::Signatures
Экспортирует магическое ключевое слово.
Подробнее: Devel::Declare.
Обёртка вокруг Devel::Declare#strip_name.
Делает всё то же самое, но дополнительно запоминает, в каком модуле какие методы были объявлены с использованием DirectMod::Method::Signatures.
Внутренний метод.
Маркирует все методы класса class, объявленные с использованием DirectMod::Method::Signatures, как "не импортированные".
class
Разбирает прототип метода, генерирует код и инжектит этот код в метод.
1 POD Error
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in 'Реализация'. Assuming UTF-8
To install Salvation::Method::Signatures, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Salvation::Method::Signatures
CPAN shell
perl -MCPAN -e shell install Salvation::Method::Signatures
For more information on module installation, please visit the detailed CPAN module installation guide.