The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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:

This distribution recommends the following modules: