The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Treex::Core::RememberArgs - role for remembering constructor's arguments

VERSION

version 2.20210102

SYNOPSIS

    package MyClass;
    use Moose;
    with 'Treex::Core::RememberArgs';
    has num => (is=>'rw');
    1;
    
    package Main;
    use MyClass;
    my $object = MyClass->({foo=>'bar baz', num=>42});
    say $object->args_str;
    # prints
    # foo='bar baz' num=42
    my $foo = $object->args->{foo};
   
    

DESCRIPTION

Moose role that saves all arguments that were passed to the constructor. These arguments are then available either as a hashref in attribute args or as a string in form arg1=value1 arg2=val2 ... in attribute args_str. Values containing spaces are enclosed in single quotes (and quotes inside the value escaped).

Unlike MooseX::SlurpyConstructor, this role stores also the arguments which are defined as attributes of the class (num in the Synopsis).

Expected use cases: Treex scenarios need to serialize all the parameters and propagate them to nested scenarios. See e.g. Treex::Scen::EN2CS.

ATTRIBUTES

args

hash ref with the original arguments

args_str

stringified original arguments

SEE ALSO

MooseX::SlurpyConstructor

MooseX::StrictConstructor

AUTHOR

Martin Popel <popel@ufal.mff.cuni.cz>

COPYRIGHT AND LICENSE

Copyright © 2015 by Institute of Formal and Applied Linguistics, Charles University in Prague This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.