# NAME

methods - Provide method syntax and sweep namespaces

# SYNOPSIS

    use methods;

    # with signature
    method foo($bar, %opts) {
       $self->bar(reverse $bar) if $opts{rev};
    }

    # attributes
    method foo : lvalue { $self->{foo} }

    # change invocant name
    method foo ($class: $bar) { $class->bar($bar) }

    # "1;" no longer required here

With [invoker](http://search.cpan.org/perldoc?invoker) support:

    use methods-invoker;
    method foo() {
       $->bar(); # Write "$self->method" as "$->method"
    }

# DESCRIPTION

This module uses [Method::Signatures::Simple](http://search.cpan.org/perldoc?Method::Signatures::Simple) to provide named and
anonymous methods with parameters, except with a shorter module name.

It also imports [namespace::sweep](http://search.cpan.org/perldoc?namespace::sweep) so the `method` helper function
(as well as any imported helper functions) won't become methods in the
importing module.

Finally, it also imports [true](http://search.cpan.org/perldoc?true) so there's no need to put `1;` in the
end of the importing module anymore.

# OPTIONS

If the first argument on the `use` line is `-invoker`, then it also
imports [invoker](http://search.cpan.org/perldoc?invoker) automatically so one can write `$self->method` 
as `$->method`.

Other arguments are passed verbatim into [Method::Signatures::Simple](http://search.cpan.org/perldoc?Method::Signatures::Simple)'s
`import` function.

# SEE ALSO

[invoker](http://search.cpan.org/perldoc?invoker), [signatures](http://search.cpan.org/perldoc?signatures)

# AUTHORS

唐鳳 <cpan@audreyt.org>

# CC0 1.0 Universal

To the extent possible under law, 唐鳳 has waived all copyright and related
or neighboring rights to [methods](http://search.cpan.org/perldoc?methods).

This work is published from Taiwan.

[http://creativecommons.org/publicdomain/zero/1.0](http://creativecommons.org/publicdomain/zero/1.0)