| 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 | DateTime::Format::Builder::Parser::Strptime::BEGIN@27 |
| 1 | 1 | 1 | 12µs | 64µs | DateTime::Format::Builder::Parser::Strptime::BEGIN@29 |
| 1 | 1 | 1 | 10µs | 50µs | DateTime::Format::Builder::Parser::Strptime::BEGIN@28 |
| 1 | 1 | 1 | 7µs | 7µs | DateTime::Format::Builder::Parser::Strptime::BEGIN@32 |
| 0 | 0 | 0 | 0s | 0s | DateTime::Format::Builder::Parser::Strptime::create_parser |
| 0 | 0 | 0 | 0s | 0s | DateTime::Format::Builder::Parser::Strptime::do_match |
| 0 | 0 | 0 | 0s | 0s | DateTime::Format::Builder::Parser::Strptime::post_match |
| 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__ |