The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
use strict;

=pod

This example shows a simple fall through parser that tries
a few of the other formatting modules, _then_ fails.

=cut

package DateTime::Format::Fall;
use DateTime::Format::HTTP;
use DateTime::Format::Mail;
use DateTime::Format::IBeat;

use DateTime::Format::Builder (
parsers => { parse_datetime => [
    sub { eval { DateTime::Format::HTTP->parse_datetime( $_[1] ) } },
    sub { eval { DateTime::Format::Mail->parse_datetime( $_[1] ) } },
    sub { eval { DateTime::Format::IBeat->parse_datetime( $_[1] ) } },
]});

package main;

for ( '@d19.07.03 @704', '20030719T155345', 'gibberish' )
{
    print DateTime::Format::Fall->parse_datetime($_)->datetime, "\n";
}