A data domain is a description of a set of values, either scalar or structured
(arrays or hashes). The description can include many constraints, like minimal
or maximal values, regular expressions, required fields, forbidden fields, and
also contextual dependencies. From that description, one can then invoke the
domain's inspect method to check if a given value belongs to it or not. In case
of mismatch, a structured set of error messages is returned.
The motivation for writing this package was to be able to express in a compact
way some possibly complex constraints about structured data. Typically the data
is a Perl tree (nested hashrefs or arrayrefs) that may come from XML, JSON, from
a database through DBIx::DataModel, or from postprocessing an HTML form through
CGI::Expand. Data::Domain is a kind of tree parser on that structure, with some
facilities for dealing with dependencies within the structure, and with several
options to finely tune the error messages returned to the user.
This class is a Perl version of Java's java.util.Properties and aims
to be format-compatible with that class.
FreeOCL is an implementation of OpenCL 1.2 specifications
targeting CPUs. Instead of using a built-in or dedicated
compiler, it relies on an external C++ compiler.
This often-needed functionality is split from the main Data::Sah to keep it in a
small and minimal-dependencies package.
Date::ICal talks the ICal date format, and is intended to be a base
class for other date/calendar modules that know about ICal time format
also.
A module that implements the Discordian calendar made popular(?) in the
"Illuminatus!" trilogy by Robert Shea and Robert Anton Wilson and by the
Church of the SubGenius.
This module allows you to calculate the day, week, period or quarter of a date
in a fiscal year, given a start date and either a target date or number of
periods and target date. This is often needed in business, where the fiscal
year begins and ends on different days than the calendar year. This module is
based on the Gregorian calendar. Using other DT calendar objects will return
results, but the behavior is unpredictable for calendars that have more than
365 or 366 days.
DateTime::Format::DateManip is a class that knows how to convert between
Date::Manip dates and durations and DateTime and DateTime::Duration objects.
Recurrences are note yet supported.
DateTime::Format::Flexible attempts to take any string you give it and parse it
into a DateTime object. The test file tests 2500+ variations of date/time
strings.
RFC2822 introduces a slightly different format of date than that used by
RFC822. The main correction is that the format is more limited, and thus easier
to parse.