Ingy döt Net > Mo-0.35 > Mo::builder

Download:
Mo-0.35.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.35   Source   Latest Release: Mo-0.38

Name ^

Mo::builder - Adds the builder feature to Mo's has

Synopsis ^

    use Mo qw'builder';
    has name => ( builder => 'name_lookup' );

    sub name_lookup {
        my ($self) = @_;
        ...
    }

Description ^

Adds the builder parameter to has, which expects a method name, which is executed on $self to set the attribute if it hasn't been set yet.

Laziness ^

Builders in Mo are lazy by default. This can be changed by explicitly setting the lazy argument to false, in order to cause it to be initialized during instantiation.

    use Mo qw'builder';
    has status => ( builder => '_build_status' );             # lazy
    has source => ( builder => '_build_source', lazy => 1);   # lazy
    has target => ( builder => '_build_target', lazy => 0);   # eager

To change the default behavior and make builders to be initialized eagerly by default, import nonlazy.

    use Mo qw'builder nonlazy';
    has status => ( builder => '_build_status' );             # eager
    has source => ( builder => '_build_source', lazy => 1);   # lazy
    has target => ( builder => '_build_target', lazy => 0);   # eager
syntax highlighting: