NAME

Moove - functions and methods with parameter lists and type constraints

VERSION

version 0.006

SYNOPSIS

use Moove;

func foo (Int $number, Str $text)
{
    ...
}


use Moove classes => [qw[ Some::Class ]];

method bar (Some::Class $obj)
{
    ...
}


use Moove -trycatch;

func foobar () {
    try {
        die "meh";
    } catch {
        return "caught meh.";
    }
}


use Moove -autoclass;

method bar (Some::Class $obj)
{
    ...
}

DESCRIPTION

This module inherits Function::Parameters with some defaults and type constraints with Type::Tiny.

Some reasons to use Moove:

This is also a very early release.

IMPORT OPTIONS

The import method supports these keywords:

  • types

    As an ArrayRef, calls Types::Registry->for_class($caller)->add_types(@$types).

    As a ScalarRef, calls Types::Registry->for_class($caller)->add_types($$types).

  • classes

    For each class in this ArrayRef, calls Types::Registry->for_class($caller)->add_types(Type::Utils::class_type($class)).

  • -nostdtypes

    Do not import Types::Standard.

  • -trycatch

    Import Syntax::Feature::Try with type constraints.

  • -autoclass

    Enable auto-generation of class contraints (Type::Tiny::Class) if the constraint looks like a package name (/^\w+(::\w+)+$/). This always takes precedence over the general type registry.

    This also works with -trycatch.

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/zurborg/libmoove-perl/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

David Zurborg <zurborg@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2016 by David Zurborg.

This is free software, licensed under:

The ISC License