Useful routines
version 0.81
new
Standard constructor. Returns a blessed hash; any arguments are placed in the hash. This is useful for storing information between methods.
generic_parser
This is a method provided solely for the benefit of \*(C`Parser\*(C' implementations. It semi-neatly abstracts a lot of the work involved.
Basically, it takes parameters matching the assorted callbacks from the parser declarations and makes a coderef out of it all.
Currently recognized callbacks are:
on_match
on_fail
preprocess
postprocess
These are methods you should define when writing your own subclass.
Note: these methods do not exist in this class. There is no point trying to call \*(C`$self->SUPER::do_match( ... )\*(C'.
do_match
\*(C`do_match\*(C' is the first phase. Arguments are the date and @args. \*(C`self\*(C', \*(C`label\*(C', \*(C`args\*(C'. Return value must be defined if you match successfully.
post_match
\*(C`post_match\*(C' is called after the appropriate callback out of \*(C`on_match\*(C'/\*(C`on_fail\*(C' is done. It's passed the date, the return value from \*(C`do_match\*(C' and the parsing hash.
Its return value is used as the \*(C`post\*(C' argument to the \*(C`postprocess\*(C' callback, and as the second argument to \*(C`make\*(C'.
make
\*(C`make\*(C' takes the original input, the return value from \*(C`post_match\*(C' and the parsing hash and should return a \*(C`DateTime\*(C' object or undefined.
For use of \*(C`Parser\*(C', this module also delegates \*(C`valid_params\*(C' and \*(C`params\*(C'. This is just convenience to save typing the following:
DateTime::Format::Builder::Parser->valid_params( blah )
Instead we get to type:
$self->valid_params( blah ); _\|_PACKAGE_\|_->valid_params( blah );
Rather than attempt to explain how it all works, I think it's best if you take a look at Regex.pm and Strptime.pm as examples and work from there.
See DateTime::Format::Builder for details.
\*(C`[email protected]\*(C' mailing list.
http://datetime.perl.org/
perl, DateTime, DateTime::Format::Builder, DateTime::Format::Builder::Parser.
Dave Rolsky <[email protected]>
Iain Truskett
This software is Copyright (c) 2013 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)