Этого можно добиться, используя DateTime :: Format :: Flexible .
use DateTime::Format::Flexible qw( );
my $dt = DateTime::Format::Flexible->parse_datetime(
'Thursday, September 13, 2007',
lang => [ 'en' ], # Optional
);
Если вы знали конкретный формат (как в исходном вопросе), ярекомендовал бы DateTime :: Format :: Strptime .
use DateTime::Format::Strptime qw( );
my $format = DateTime::Format::Strptime->new(
pattern => '%A, %B %e, %Y',
locale => 'en',
on_error => 'croak',
);
my $dt = $format->parse_datetime('Thursday, September 13, 2007');