File: basic

package info (click to toggle)
libparams-validate-perl 1.29-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 996 kB
  • ctags: 879
  • sloc: perl: 2,362; makefile: 3
file content (76 lines) | stat: -rw-r--r-- 2,383 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
use Params::Validate ();

use Benchmark;

use strict;

my @a = ( 1,[ 1, 2, 3 ], bless {}, 'Foo' );
my @h = ( a => 1, b => [ 1, 2, 3 ], c => (bless {}, 'Foo'), f => 99 );

Benchmark::timethese( 50000,
                     { array => \&array,
                       hash  => \&hash,
                       with  => \&with,
                       sub1  => sub { sub1( x => 1 ) },
                       sub2  => sub { sub2( x => 1 ) },
                       sub3  => sub { sub3() },
                       sub4  => sub { sub4(1) },
                       sub5  => sub { sub5(1) },
                       sub6  => sub { sub6() },
                     }
                    );

sub array
{
    my %f =
        eval { Params::Validate::validate_pos
                   ( @a,
                     { type => Params::Validate::SCALAR },
                     { type => Params::Validate::ARRAYREF },
                     { isa => 'Foo' },
                     { default => {1=>2} },
                   ); };
    die $@ if $@;
}

sub hash
{
    my %f =
        eval { Params::Validate::validate
                   ( @h, { a => { type => Params::Validate::SCALAR },
                           b => { type => Params::Validate::ARRAYREF },
                           c => { isa => 'Foo' },
                           d => { default => {1=>2} },
                           e => { optional => 1 },
                           f => 1,
                         } ) };
    die $@ if $@;
}

sub with
{
    my %f =
        eval { Params::Validate::validate_with
                   ( params => \@h,
                     spec => { a => { type => Params::Validate::SCALAR },
                               b => { type => Params::Validate::ARRAYREF },
                               c => { isa => 'Foo' },
                               d => { default => {1=>2} },
                               e => { optional => 1 },
                               f => 1,
                             } ) };
    die $@ if $@;
}


sub sub1 { Params::Validate::validate(@_, { x => 1 } ) }

sub sub2 { my %p = Params::Validate::validate(@_, { x => 1 } ) }

sub sub3 { my %p = Params::Validate::validate(@_, { x => { default => 1 } } ) }

sub sub4 { Params::Validate::validate_pos(@_, 1) }

sub sub5 { my @p = Params::Validate::validate_pos(@_, 1) };

sub sub6 { my @p = Params::Validate::validate_pos(@_, { default => 1 } ) }