XML::RDB is a Perl extension to convert XML files into RDB schemas and populate/unpopulate them. It works with XML schemas too. It analyzes relationships within either an XML file or an XML schema to create RDB tables to hold that document (or any XML document that conforms to the XML schema). It takes an XML file or URL as input for the XML::DOM::Parser, and extracts information to build and write DDL. An attempt is made to recognize relations within the XML structure then translate it to the DDL. That generated DDL is then loaded, parsing the DOM tree a second time to extract and load the data. At the bottom of the DDL are select statements to help get a view of those relations found, and XML data. xml_rdb also dumps the data back to XML format.
CHI provides a unified caching API for Perl, designed to assist a developer in persisting data for a specified period of time. The CHI interface is implemented by driver classes that support fetching, storing, and clearing of data. Driver classes exist or will exist for the gamut of storage backends available to Perl, such as memory, plain files, memory mapped files, memcached, and DBI. CHI is intended as an evolution of DeWitt Clinton's Cache::Cache package, adhering to the basic Cache API but adding new features and addressing limitations in the Cache::Cache implementation.
Proc::Reliable is a Perl module for simple, reliable, and configurable subprocess execution. In particular, it is especially useful for managing the execution of 'problem' programs which are likely to fail, hang, or otherwise behave in an unruly manner. It includes all the functionality of the backticks operator and system() functions, plus many common uses of fork() and exec(), open2() and open3(). It incorporates a number of options, including sending data to the subprocess on STDIN, collecting STDOUT and STDERR separately or together, killing hung processes, timouts, and automatic retries.
A Life Science Identifier (LSID) Resolver is a software system that implements an agreed LSID resolution protocol to allow higher-level software to be able to locate and access the data uniquely named by any LSID URN. This project is the first implementation of a Web service-based LSID URN resolution protocol, and includes Java J2EE, Perl, and Win32 COM/C++ client & server stacks, example programs, and tutorials on how to establish a LSID resolver for any organization.
Morpheus is a Perl module that implements a configuration engine that completely separates config consumers from config providers. Consumers can obtain configuration values by using this module or the morph script. Configuration values are bound to various nodes in the global configuration tree, similar to a virtual file system. Consumers can ask for any node or for any subtree. Providers are plugins which can populate the configuration tree from any sources, such as local configuration files, configuration database, and the environment. The overall program configuration is merged together from all data provided by plugins.