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

NAME

Benchmark::Featureset::ParamCheck - compare different parameter validation modules

SYNOPSIS

  use Benchmark::Featureset::ParamCheck;
  use Module::Runtime qw(use_module);
  
  my @impl     = Benchmark::Featureset::ParamCheck->implementations;
  my $testdata = Benchmark::Featureset::ParamCheck->trivial_named_data;
  
  for my $i (@impl) {
    # Check the data 10,000 times.
    use_module($i)->run_named_check(10_000, $testdata);
  }

DESCRIPTION

A whole bunch of implementations for sub paramater checking.

Each implementation provides a method to check a hash of the form shown in the example. It should have three keys, 'integer' (value should be an integer), 'hashes' (value should be an arrayref of hashrefs), and 'object' (value should be an object with print and close methods).

This is intended for benchmarking.

Class Methods

  • implementations

    List of implementations. Each implementation is a subclass of Benchmark::Featureset::ParamCheck::Base

  • trivial_named_data, trivial_positional_data

    Returns trivial test data.

  • complex_named_data, complex_positional_data

    Returns complex test data.

Benchmark::Featureset::ParamCheck::Base

This class provides the following class methods:

  • accept_array

  • accept_arrayref

  • accept_hash

  • accept_hashref

  • run_named_check($times, %parameters), run_named_check($times, \%parameters)

  • run_postional_check($times, @parameters)

BUGS

Please report any bugs to https://github.com/tobyink/p5-benchmark-featureset-paramcheck/issues.

SEE ALSO

Parameter validation libraries: Data::Validator, MooseX::Params::Validate, Params::Check, Params::Validate, Params::ValidationCompiler, Type::Params.

Type constraint libraries: Moose, Mouse, Specio, Type::Tiny, Type::Nano.

Other tested libraries: Ref::Util::XS.

AUTHOR

Toby Inkster <tobyink@cpan.org>.

COPYRIGHT AND LICENCE

This software is copyright (c) 2017, 2018, 2022 by Toby Inkster.

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

DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.