Take me over?
NAME
Method::Signatures - method and function declarations with signatures and no source filter
VERSION
20170211
SYNOPSIS
package Foo;
use Method::Signatures;
method new (%args) {
return bless {%args}, $self;
}
# Can also get type checking if you like:
method set (Str $key, Int $val) {
return $self->{$key} = $val; # now you know $val is always an integer
}
DESCRIPTION
Provides two new keywords, func
and method
, so that you can write subroutines with signatures instead of having to spell out my $self = shift; my($thing) = @_
func
is like sub
but takes a signature where the prototype would normally go. This takes the place of my($foo, $bar) = @_
and does a whole lot more.
method
is like func
but specifically for making methods. It will automatically provide the invocant as $self
(by default). No more my $self = shift
.
INSTALLATION
This module sources are hosted on github https://github.com/evalEmpire/method-signatures.git and uses Module::Build
to generate the distribution. It can be istalled:
- directly
-
cpanm git://github.com/evalEmpire/method-signatures.git
- from CPAN
-
cpan Method::Signatures cpanm Method::Signatures
- maualy cloninig the repository:
-
git clone https://github.com/evalEmpire/method-signatures.git cd method-signatures perl Build.PL ./Build install
REQUIREMENTS
This distribution requires Perl v5.8.1.
This distribution requires the following modules:
Any::Moose (version 0.11)
Const::Fast (version 0.006)
Devel::Declare (version 0.006002)
Devel::Declare::MethodInstaller::Simple (version 0.006002)
Lexical::SealRequireHints (version 0.008)
Module::Build (version 0.26)
Mouse (version 0.64)
PPI (version 1.203)
Sub::Name (version 0.03)
Test::Exception (version 0.29)
Test::Warn (version 0.10)
This distribution recommends the following modules:
Data::Alias (version 1.08)
Moose (version 0.96)