Filename | /usr/share/perl5/DateTime/Format/Builder/Parser/Strptime.pm |
Statements | Executed 16 statements in 386µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 20µs | 25µs | BEGIN@27 | DateTime::Format::Builder::Parser::Strptime::
1 | 1 | 1 | 20µs | 66µs | BEGIN@28 | DateTime::Format::Builder::Parser::Strptime::
1 | 1 | 1 | 12µs | 61µs | BEGIN@29 | DateTime::Format::Builder::Parser::Strptime::
1 | 1 | 1 | 11µs | 14µs | BEGIN@32 | DateTime::Format::Builder::Parser::Strptime::
0 | 0 | 0 | 0s | 0s | create_parser | DateTime::Format::Builder::Parser::Strptime::
0 | 0 | 0 | 0s | 0s | do_match | DateTime::Format::Builder::Parser::Strptime::
0 | 0 | 0 | 0s | 0s | post_match | DateTime::Format::Builder::Parser::Strptime::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package DateTime::Format::Builder::Parser::Strptime; | ||||
2 | |||||
3 | =head1 NAME | ||||
4 | |||||
- - | |||||
27 | 3 | 42µs | 2 | 31µs | # spent 25µs (20+5) within DateTime::Format::Builder::Parser::Strptime::BEGIN@27 which was called:
# once (20µs+5µs) by DateTime::Format::Builder::Parser::BEGIN@1.7 at line 27 # spent 25µs making 1 call to DateTime::Format::Builder::Parser::Strptime::BEGIN@27
# spent 5µs making 1 call to strict::import |
28 | 3 | 35µs | 2 | 112µs | # spent 66µs (20+46) within DateTime::Format::Builder::Parser::Strptime::BEGIN@28 which was called:
# once (20µs+46µs) by DateTime::Format::Builder::Parser::BEGIN@1.7 at line 28 # spent 66µs making 1 call to DateTime::Format::Builder::Parser::Strptime::BEGIN@28
# spent 46µs making 1 call to vars::import |
29 | 3 | 45µs | 2 | 111µs | # spent 61µs (12+50) within DateTime::Format::Builder::Parser::Strptime::BEGIN@29 which was called:
# once (12µs+50µs) by DateTime::Format::Builder::Parser::BEGIN@1.7 at line 29 # spent 61µs making 1 call to DateTime::Format::Builder::Parser::Strptime::BEGIN@29
# spent 50µs making 1 call to Exporter::import |
30 | |||||
31 | 1 | 600ns | $VERSION = '0.77'; | ||
32 | 3 | 240µs | 2 | 16µs | # spent 14µs (11+2) within DateTime::Format::Builder::Parser::Strptime::BEGIN@32 which was called:
# once (11µs+2µs) by DateTime::Format::Builder::Parser::BEGIN@1.7 at line 32 # spent 14µs making 1 call to DateTime::Format::Builder::Parser::Strptime::BEGIN@32
# spent 2µs making 1 call to UNIVERSAL::import |
33 | 1 | 10µs | @ISA = qw( DateTime::Format::Builder::Parser::generic ); | ||
34 | |||||
35 | 1 | 8µs | 1 | 12µs | __PACKAGE__->valid_params( # spent 12µs making 1 call to DateTime::Format::Builder::Parser::valid_params |
36 | strptime => { | ||||
37 | type => SCALAR|HASHREF, # straight pattern or options to DTF::Strptime | ||||
38 | }, | ||||
39 | ); | ||||
40 | |||||
41 | sub create_parser | ||||
42 | { | ||||
43 | my ($self, %args) = @_; | ||||
44 | |||||
45 | # Arguments to DTF::Strptime | ||||
46 | my $pattern = $args{strptime}; | ||||
47 | |||||
48 | # Create our strptime parser | ||||
49 | require DateTime::Format::Strptime; | ||||
50 | my $strptime = DateTime::Format::Strptime->new( | ||||
51 | ( ref $pattern ? %$pattern : ( pattern => $pattern ) ), | ||||
52 | ); | ||||
53 | unless (ref $self) | ||||
54 | { | ||||
55 | $self = $self->new( %args ); | ||||
56 | } | ||||
57 | $self->{strptime} = $strptime; | ||||
58 | |||||
59 | # Create our parser | ||||
60 | return $self->generic_parser( | ||||
61 | ( map { exists $args{$_} ? ( $_ => $args{$_} ) : () } qw( | ||||
62 | on_match on_fail preprocess postprocess | ||||
63 | ) ), | ||||
64 | label => $args{label}, | ||||
65 | ); | ||||
66 | } | ||||
67 | |||||
68 | sub do_match | ||||
69 | { | ||||
70 | my $self = shift; | ||||
71 | my $date = shift; | ||||
72 | local $^W; # bizarre bug | ||||
73 | # Do the match! | ||||
74 | my $dt = eval { $self->{strptime}->parse_datetime( $date ) }; | ||||
75 | return $@ ? undef : $dt; | ||||
76 | } | ||||
77 | |||||
78 | sub post_match | ||||
79 | { | ||||
80 | return $_[2]; | ||||
81 | } | ||||
82 | |||||
83 | 1 | 5µs | 1; | ||
84 | |||||
85 | __END__ |