SYNOPSIS use Class::GenSource qw(gen_class_source_code); say gen_class_source_code( name => 'My::Class', attributes => { foo => {}, bar => {}, baz => {}, }, ); Will print something like: package My::Class; sub new { my $class = shift; bless {@_}, $class } sub foo {} sub bar {} sub baz {} Another example (generating Moo-based class): say gen_class_source_code( name => 'My::Class', attributes => { foo => {}, bar => {}, baz => {}, }, variant => 'Moo', ); will print something like: package My::Class; use Moo; has foo => (is=>'rw'); has bar => (is=>'rw'); has baz => (is=>'rw'); DESCRIPTION