DateTim...generic(3)
π DateTim...generic(3) π
hey bestie, welcome to the DateTim...generic(3) page β it's coming at you from the User Contributed Perl Documentation corner of the universe, and it's giving βuseful routinesβ energy β¨
π NAME π
DateTime::Format::Builder::Parser::generic β useful routines, bestie. That's the whole name, no cap π
π VERSION π
version 0.83 β periodt β¨
β¨ METHODS β¨
πΈ Useful
okay so here are the useful bits:
new β standard constructor, bestie. It returns a blessed hash; literally any arguments you pass get placed in that hash. This is useful for storing information between methods. π«Ά
generic_parser β this one is a method provided solely for the benefit of Parser implementations, no cap. 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_matchon_failpreprocesspostprocess
π¦ Methods for subclassing
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 $self->SUPER::do_match( ... ). π
do_match β do_match is the first phase. Arguments are the date and @args. "self", "label", "args". Return value must be defined if you match successfully. π
post_match β post_match is called after the appropriate callback out of on_match/on_fail is done. It's passed the date, the return value from do_match and the parsing hash.
Its return value is used as the post argument to the postprocess callback, and as the second argument to make. π
make β make takes the original input, the return value from post_match and the parsing hash and should return a DateTime object or undefined. π
π Delegations
For use of Parser, this module also delegates valid_params and params. This is just convenience to save typing the following:
DateTime::Format::Builder::Parser->valid_params(...)
Instead we get to type:
$self->valid_params(...);
__PACKAGE__->valid_params(...);
slay, honestly π β¨
π§ WRITING A SUBCLASS
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. fr fr, those are the vibe check files π¦
π SEE ALSO
"datetime@perl.org"mailing list.http://datetime.perl.org/perl,DateTime,DateTime::Format::Builder,DateTime::Format::Builder::Parser.
π«Ά SUPPORT
Bugs may be submitted at <https://github.com/houseabsolute/DateTime-Format-Builder/issues>.
I am also usually active on IRC as 'autarch' on irc://irc.perl.org. π«‘
π₯ SOURCE
The source code repository for DateTime-Format-Builder can be found at <https://github.com/houseabsolute/DateTime-Format-Builder>.
π AUTHORS
Dave Rolsky <autarch@urth.org>Iain Truskett <spoon@cpan.org>
π COPYRIGHT AND LICENSE
This software is Copyright (c) 2020 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
The full text of the license can be found in the LICENSE file included with this distribution.
okay bestie, that's the whole page! mwah π β this footer energy comes from perl v5.40.0, dated 2023-01-15, on DateTim...generic(3). You're welcome, go slay your DateTime parsing π«Άπ
π¦ where this page comes from
- epel 10: perl-DateTime-Format-Builder 0.8300-9.el10_0 Β· Artistic-2.0 AND (GPL-1.0-or-later OR Artistic-1.0-Perl)
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms