evalEmpire / method-signatures

Method and function declarations with signatures, no source filter
http://metacpan.org/pod/Method::Signatures
Other
33 stars 35 forks source link

=head1 NAME

Method::Signatures - method and function declarations with signatures and no source filter

=head1 VERSION

20170211

=head1 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
}

=head1 DESCRIPTION

Provides two new keywords, C and C, so that you can write subroutines with signatures instead of having to spell out C<my $self = shift; my($thing) = @_>

C is like C but takes a signature where the prototype would normally go. This takes the place of C<my($foo, $bar) = @_> and does a whole lot more.

C is like C but specifically for making methods. It will automatically provide the invocant as C<$self> (L<by default|/invocant>). No more C<my $self = shift>.

=head1 INSTALLATION

This module sources are hosted on github https://github.com/evalEmpire/method-signatures.git and uses C to generate the distribution. It can be installed:

=over

=item directly

cpanm git://github.com/evalEmpire/method-signatures.git

=item from CPAN

cpan Method::Signatures cpanm Method::Signatures

=item maualy cloninig the repository:

git clone https://github.com/evalEmpire/method-signatures.git cd method-signatures perl Build.PL ./Build install

=back

=head1 REQUIREMENTS

This distribution requires Perl v5.8.1.

This distribution requires the following modules:

=over 4

=item * L (version 0.11)

=item * L (version 0.006)

=item * L (version 0.006002)

=item * L (version 0.006002)

=item * L (version 0.008)

=item * L (version 0.26)

=item * L (version 0.64)

=item * L (version 1.203)

=item * L (version 0.03)

=item * L (version 0.29)

=item * L (version 0.10)

=back

This distribution recommends the following modules:

=over 4

=item * L (version 1.08)

=item * L (version 0.96)

=back