Object::Simple - Simplest class builder, Mojo::Base porting, fast and less memory

    package SomeClass;
    use Object::Simple -base;
    
    # Create accessor
    has 'foo';
    
    # Create accessor with default value
    has foo => 1;
    has foo => sub { [] };
    has foo => sub { {} };
    has foo => sub { OtherClass->new };
    
    # Create accessors at once
    has [qw/foo bar baz/];
    has [qw/foo bar baz/] => 0;

If you learn more, See public doucumentation on cpan.