The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Class::Data::Lite - a minimalistic class accessors

SYNOPSIS

    package MyPackage;
    use Class::Data::Lite (
        rw => {
            readwrite => 'rw',
        },
        ro => {
            readonly => 'ro',
        },
    );
    package main;
    print(MyPackage->readwrite); #=> rw

DESCRIPTION

Class::Data::Lite is a minimalistic implement for class accessors. There is no inheritance and fast.

THE USE STATEMENT

The use statement (i.e. the import function) of the module takes a single hash as an argument that specifies the types and the names of the properties. Recognises the following keys.

rw => (\@name_of_the_properties|\%name_of_the_properties_and_values)

creates a read / write class accessor for the name of the properties passed through as an arrayref or hashref.

ro => (\@name_of_the_properties|\%name_of_the_properties_and_values)

creates a read-only class accessor for the name of the properties passed through as an arrayref or hashref.

BENCHMARK

It is faster than Class::Data::Inheritance. See eg/bench.pl.

                                  Rate Class::Data::Inheritable    Class::Data::Lite
    Class::Data::Inheritable 2619253/s                       --                 -38%
    Class::Data::Lite        4191169/s                      60%                   --

SEE ALSO

Class::Accessor::Lite, Class::Data::Inheritance

LICENSE

Copyright (C) Songmu.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Songmu <y.songmu@gmail.com>