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