NAME

Class::Params - Parameter utils for constructor.

SYNOPSIS

use Class::Params qw(params);
params($self, $def, $input_array);

DEFINITION FORMAT

There is hash with parameters.
internal_name => [real_name, class, possible_types, requirement]

Example:
'par1' => ['_par1', undef, 'SCALAR', 1],
'par2' => ['_par2', undef, ['SCALAR', 'HASH'], 0],
'par3' => ['_par3', 'Class', ['SCALAR', 'Class'], 0],

SUBROUTINES

params($self, $def, $input_array)
Check for structure over definition and save input data to $self.
Parameters:
$self - Structure, for data save.
$def - Definition hash ref.
$input_array - Array of key-value pairs.

EXAMPLE1

# Pragmas.
use strict;
use warnings;

# Modules.
use Class::Params qw(params);

# Definition.
my $self = {};
my $def = {
        'par' => ['par', undef, 'SCALAR', 1],
};

# Check.
# output_structure, definition, array of pairs (key, value).
params($self, $def, ['bad_par', 1]);

# Output:
# Unknown parameter 'bad_par'.

EXAMPLE2

# Pragmas.
use strict;
use warnings;

# Modules.
use Class::Params qw(params);
use Data::Printer;

# Definition.
my $self = {};
my $def = {
        'par' => ['par', undef, 'SCALAR', 1],
};

# Check.
# output_structure, definition, array of pairs (key, value).
params($self, $def, ['par', 1]);

# Dump $self.
p $self;

# Output:
# \ {
#     par   1
# }

DEPENDENCIES

Error::Pure, Exporter, Readonly, Scalar::Util.

REPOSITORY

https://github.com/tupinek/Class-Params

AUTHOR

Michal Špaček skim@cpan.org

LICENSE AND COPYRIGHT

BSD license.

VERSION

0.01