← Index
NYTProf Performance Profile   « block view • line view • sub view »
For -e
  Run on Wed Nov 17 21:45:08 2010
Reported on Wed Nov 17 22:14:16 2010

Filename/home/doy/perl5/perlbrew/perls/perl-5.10.1/lib/site_perl/5.10.1/x86_64-linux/Params/ValidateXS.pm
StatementsExecuted 17 statements in 2.13ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
111105µs125µsParams::Validate::::BEGIN@3.3Params::Validate::BEGIN@3.3
11182µs82µsParams::Validate::::BEGIN@41Params::Validate::BEGIN@41
11138µs120µsParams::Validate::::BEGIN@4Params::Validate::BEGIN@4
0000s0sParams::Validate::::__ANON__[:11]Params::Validate::__ANON__[:11]
0000s0sParams::Validate::::_check_regex_from_xsParams::Validate::_check_regex_from_xs
0000s0sParams::Validate::::validation_optionsParams::Validate::validation_options
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Params::Validate;
2
33135µs2145µs
# spent 125µs (105+20) within Params::Validate::BEGIN@3.3 which was called: # once (105µs+20µs) by Params::Validate::BEGIN@5 at line 3
use strict;
# spent 125µs making 1 call to Params::Validate::BEGIN@3.3 # spent 20µs making 1 call to strict::import
431.00ms2202µs
# spent 120µs (38+82) within Params::Validate::BEGIN@4 which was called: # once (38µs+82µs) by Params::Validate::BEGIN@5 at line 4
use warnings;
# spent 120µs making 1 call to Params::Validate::BEGIN@4 # spent 82µs making 1 call to warnings::import
5
613µsrequire XSLoader;
71778µs1752µsXSLoader::load( 'Params::Validate', $Params::Validate::VERSION );
# spent 752µs making 1 call to XSLoader::load
8
9
10my $default_fail = sub { require Carp;
11110µs Carp::confess($_[0]) };
12
13{
14220µs my %defaults = ( ignore_case => 0,
15 strip_leading => 0,
16 allow_extra => 0,
17 on_fail => $default_fail,
18 stack_skip => 1,
19 normalize_keys => undef,
20 );
21
2217µs *set_options = \&validation_options;
23 sub validation_options
24 {
25 my %opts = @_;
26
27 my $caller = caller;
28
29 foreach ( keys %defaults )
30 {
31 $opts{$_} = $defaults{$_} unless exists $opts{$_};
32 }
33
34 $OPTIONS{$caller} = \%opts;
35 }
36}
37
38sub _check_regex_from_xs { return ( defined $_[0] ? $_[0] : '' ) =~ /$_[1]/ ? 1 : 0 }
39
40BEGIN
41
# spent 82µs within Params::Validate::BEGIN@41 which was called: # once (82µs+0s) by Params::Validate::BEGIN@5 at line 135
{
42128µs if ( $] >= 5.006 && $] < 5.007 )
43 {
44 eval <<'EOF';
45sub check_for_error
46{
47 if ( defined $Params::Validate::ERROR )
48 {
49 $Params::Validate::ON_FAIL ||= sub { require Carp; Carp::croak( $_[0] ) };
50
51 $Params::Validate::ON_FAIL->($Params::Validate::ERROR)
52 }
53}
54
55sub validate_pos (\@@)
56{
57 local $Params::Validate::ERROR;
58 local $Params::Validate::ON_FAIL;
59 local $Params::Validate::CALLER = caller;
60
61 my $r;
62 if (defined wantarray)
63 {
64 $r = &_validate_pos;
65 }
66 else
67 {
68 &_validate_pos;
69 }
70
71 check_for_error();
72
73 return wantarray ? @$r : $r if defined wantarray;
74}
75
76sub validate (\@$)
77{
78 local $Params::Validate::ERROR;
79 local $Params::Validate::ON_FAIL;
80 local $Params::Validate::CALLER = caller;
81
82 my $r;
83 if (defined wantarray)
84 {
85 $r = &_validate;
86 }
87 else
88 {
89 &_validate;
90 }
91
92 check_for_error();
93
94 return wantarray ? %$r : $r if defined wantarray;
95}
96
97sub validate_with
98{
99 local $Params::Validate::ERROR;
100 local $Params::Validate::ON_FAIL;
101 local $Params::Validate::CALLER = caller;
102
103 my $r;
104 if (defined wantarray)
105 {
106 $r = &_validate_with;
107 }
108 else
109 {
110 &_validate_with;
111 }
112
113 check_for_error();
114
115 my %p = @_;
116 if ( UNIVERSAL::isa( $p{spec}, 'ARRAY' ) )
117 {
118 return wantarray ? @$r : $r if defined wantarray;
119 }
120 else
121 {
122 return wantarray ? %$r : $r if defined wantarray;
123 }
124}
125EOF
126
127 die $@ if $@;
128 }
129 else
130 {
131127µs *validate = \&_validate;
132115µs *validate_pos = \&_validate_pos;
133116µs *validate_with = \&_validate_with;
134 }
135162µs182µs}
# spent 82µs making 1 call to Params::Validate::BEGIN@41
136
137124µs1;
138
139__END__