Filename | /usr/share/perl5/DateTime/Format/Builder/Parser/Strptime.pm |
Statements | Executed 16 statements in 363µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 19µs | 24µs | BEGIN@27 | DateTime::Format::Builder::Parser::Strptime::
1 | 1 | 1 | 12µs | 64µs | BEGIN@29 | DateTime::Format::Builder::Parser::Strptime::
1 | 1 | 1 | 10µs | 50µs | BEGIN@28 | DateTime::Format::Builder::Parser::Strptime::
1 | 1 | 1 | 7µs | 7µ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 | 33µs | 2 | 28µs | # spent 24µs (19+4) within DateTime::Format::Builder::Parser::Strptime::BEGIN@27 which was called:
# once (19µs+4µs) by DateTime::Format::Builder::Parser::BEGIN@1.5 at line 27 # spent 24µs making 1 call to DateTime::Format::Builder::Parser::Strptime::BEGIN@27
# spent 4µs making 1 call to strict::import |
28 | 3 | 34µs | 2 | 91µs | # spent 50µs (10+40) within DateTime::Format::Builder::Parser::Strptime::BEGIN@28 which was called:
# once (10µs+40µs) by DateTime::Format::Builder::Parser::BEGIN@1.5 at line 28 # spent 50µs making 1 call to DateTime::Format::Builder::Parser::Strptime::BEGIN@28
# spent 40µs making 1 call to vars::import |
29 | 3 | 41µs | 2 | 117µs | # spent 64µs (12+52) within DateTime::Format::Builder::Parser::Strptime::BEGIN@29 which was called:
# once (12µs+52µs) by DateTime::Format::Builder::Parser::BEGIN@1.5 at line 29 # spent 64µs making 1 call to DateTime::Format::Builder::Parser::Strptime::BEGIN@29
# spent 52µs making 1 call to Exporter::import |
30 | |||||
31 | 1 | 800ns | $VERSION = '0.77'; | ||
32 | 3 | 232µs | 1 | 7µs | # spent 7µs within DateTime::Format::Builder::Parser::Strptime::BEGIN@32 which was called:
# once (7µs+0s) by DateTime::Format::Builder::Parser::BEGIN@1.5 at line 32 # spent 7µs making 1 call to DateTime::Format::Builder::Parser::Strptime::BEGIN@32 |
33 | 1 | 10µs | @ISA = qw( DateTime::Format::Builder::Parser::generic ); | ||
34 | |||||
35 | 1 | 8µs | 1 | 18µs | __PACKAGE__->valid_params( # spent 18µ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__ |