SYNOPSIS

    Given a Mo/Moo/Mouse/Moose class:

        # MyClass
        use Moo;
        has attr1 => (is => 'ro', required=>1);
        has attr2 => (is => 'rw');
        sub do_this { ... }
        sub do_that { ... }
        1;

    you can generate a function for it:

        use Perinci::Sub::Gen::FromClass qw(gen_func_from_class);
        gen_func_from_class(
            name   => 'do_this',
    
            class  => 'MyClass',
            type   => 'Moo',
            method => 'do_this',
            method_args => [3, 4, 5], # optional
        );

    then if you call this function:

        do_this(attr1=>1, attr2=>2);

    it will do something like (instantiate class and call a method):

        MyClass->new(attr1=>1, attr2=>2)->do_this(3, 4, 5);

DESCRIPTION

    Sometimes some module annoyingly only provides OO interface like:

     my $obj = Foo->new(arg1=>1, arg2=>2);
     $obj->some_action;

    when it could very well just be:

     some_action(arg1=>1, arg2=>2);

    This module helps you create that function from a class.

SEE ALSO

    Rinci