Involved Projects and Packages
Method modifiers are a powerful feature from the CLOS (Common Lisp Object
Class::Method::Modifiers::Fast provides three modifiers: before, around, and
after. before and after are run just before and after the method they modify,
but can not really affect that original method. around is run in place of the
original method, with a hook to easily call that original method. See the
MODIFIERS section for more details on how the particular modifiers work.
Class::ReturnValue is a "clever" return value object that can allow code
calling your routine to expect: a boolean value (did it fail) or a list (what
are the return values)
Create or update MediaWiki pages. An update of a MediaWiki page can also be
reduced to a specific page section. You may update many pages with the same
You could change the login name between an update. This might be necessary if
you would like to update a public page and a protected page by the WikiSysop
user in just one cycle.
Reading and writing configuration files is one of the most frequent tasks of
any software design. Config::Simple is the library that helps you with it.
Config::Simple is a class representing configuration file object. It supports
several configuration file syntax and tries to identify the file syntax
automatically. Library supports parsing, updating and creating configuration
Sherzod B. Ruzmetov
BinHex is a format used by Macintosh for transporting Mac files safely through
electronic mail, as short-lined, 7-bit, semi-compressed data streams. Ths
module provides a means of converting those data streams back into into binary
Crypt::GeneratePassword generates random passwords that are (more or less)
pronounceable. Unlike Crypt::RandPasswd, it doesn't use the FIPS-181 NIST
standard, which is proven to be insecure. It does use a similar interface, so
it should be a drop-in replacement in most cases.
If you want to use passwords from a different language than english, you can
use one of the packaged alternate unit tables or generate your own. See below
For details on why FIPS-181 is insecure and why the solution used in this
module is reasonably secure, see "A New Attack on Random Pronounceable Password
Generators" by Ravi Ganesan and Chris Davies, available online in may places -
use your favourite search engine.
This module improves on FIPS-181 using a true random selection with the word
generator as mere filter. Other improvements are better pronounceability using
third order approximation instead of second order and multi-language support.
Drawback of this method is that it is usually slower. Then again, computer
speed has improved a little since 1977.
This module takes a list of CSS files and concatenates them, making sure to
honor any valid @import statements included in the files.
The benefit of this is that you get to keep your CSS as individual files, but
can serve it to users in one big file, saving the overhead of possibly dozens
of HTTP requests.
Following the CSS 2.1 spec, @import statements must be the first rules in a CSS
file. Media-specific @import statements will be honored by enclosing the
included file in an @media rule. This has the side effect of actually improving
compatibility in Internet Explorer, which ignores media-specific @import rules
but understands @media rules.
It is possible that future versions will include methods to compact whitespace
and other parts of the CSS itself, but this functionality is not supported at
the current time.
Thomas Sibley ,
A Data::ICal object represents a VCALENDAR object as defined in the iCalendar
protocol (RFC 2445, MIME type "text/calendar"), as implemented in many popular
calendaring programs such as Apple's iCal.
Each Data::ICal object is a collection of "entries", which are objects of a
subclass of Data::ICal::Entry. The types of entries defined by iCalendar (which
refers to them as "components") include events, to-do items, journal entries,
free/busy time indicators, and time zone descriptors; in addition, events and
to-do items can contain alarm entries. (Currently, Data::ICal only implements
to-do items and events.)
Data::ICal is a subclass of Data::ICal::Entry; see its manpage for more methods
applicable to Data::ICal.
This modules checks potential passwords for crackability. It checks that the
password is in the appropriate length, that it has enough character groups,
that it does not contain the same chars repeatedly or ascending or descending
characters, or charcters close to each other in the keyboard. It will also
attempt to search the ispell word file for existance of whole words. The
module's policies can be modified by changing its variables. (Check
"VARIABLES"). For doing it, it is recommended to import the ':all' shortcut
when requiring it:
A module used to generate random data. Useful mostly for test programs.
Adekunle Olonoh, email@example.com
This module provides utility functions for data and data types, including
functions for subroutines and symbol table hashes (stashes).
The implementation of this module is both Pure Perl and XS, so if you have a C
compiler, all the functions this module provides are really faster.
Date::Business provides the functionality to perform simple date manipulations
quickly. Support for calendar date and business date math is provided.
Business dates are weekdays only. Adding 1 to a weekend returns Monday,
subtracting 1 returns Friday.
The difference in business days between Friday and the following Monday (using
the diffb function) is one business day. The number of business days between
Friday and the following Monday (using the betweenb function) is zero.
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.
Date::Leapyear exports one function - isleap - which returns 1 or 0 if a year is leap, or not, respectively.
An implementation of the Mayan Long Count, Haab, and Tzolkin calendars as
defined in "Calendrical Calculations The Millennium Edition". Supplemented by
"Frequently Asked Questions about Calendars".
DateTime::Format::Builder creates DateTime parsers. Many string formats of
dates and times are simple and just require a basic regular expression to
extract the relevant information. Builder provides a simple way to do this
without writing reams of structural code.
Builder provides a number of methods, most of which you'll never need, or at
least rarely need. They're provided more for exposing of the module's innards
to any subclasses, or for when you need to do something slightly beyond what I
This module understands the formats used by MySQL for its DATE, DATETIME, TIME,
and TIMESTAMP data types. It can be used to parse these formats in order to
create DateTime objects, and it can take a DateTime object and produce a string
representing it in the MySQL format.
DBIx::DBSchema objects are collections of DBIx::DBSchema::Table objects and
represent a database schema.
This module implements an OO-interface to database schemas. Using this module,
you can create a database schema with an OO Perl interface. You can read the
schema from an existing database. You can save the schema to disk and restore
it in a different process. You can write SQL CREATE statements statements for
different databases from a single source. In recent versions, you can transform
one schema to another, adding any necessary new columns and tables (and, as of
Currently supported databases are MySQL, PostgreSQL and SQLite. Sybase and
Oracle drivers are partially implemented. DBIx::DBSchema will attempt to use
generic SQL syntax for other databases. Assistance adding support for other
databases is welcomed. See DBIx::DBSchema::DBD, "Driver Writer's Guide and Base
This module provides an object-oriented mechanism for retrieving and updating data in a DBI-accesible database.
In order to use this module, you should create a subclass of DBIx::SearchBuilder and a subclass of DBIx::SearchBuilder::Record for each table that you wish to access. (See the documentation of DBIx::SearchBuilder::Record for more information on subclassing it.)
Your DBIx::SearchBuilder subclass must override NewItem, and probably should override at least _Init also; at the very least, _Init should probably call _Handle and _Table to set the database handle (a DBIx::SearchBuilder::Handle object) and table name for the class. You can try to override just about every other method here, as long as you think you know what you are doing.
A unique flat-file database module, written in pure perl. True multi-level
hash/array support (unlike MLDBM, which is faked), hybrid OO / tie()
interface, cross-platform FTPable files, ACID transactions, and is quite
fast. Can handle millions of keys and unlimited levels without significant
slow-down. Written from the ground-up in pure perl -- this is NOT a
wrapper around a C-based DBM. Out-of-the-box compatibility with Unix, Mac
OS X and Windows.
The main purpose of this module is to provide an easy way to build a profile to
validate a data structure. It does this by giving you a set of declarative
keywords in the importing namespace.
Robert 'phaylon' Sedlacek
Perl's API has changed over time, gaining new features, new functions,
increasing its flexibility, and reducing the impact on the C namespace
environment (reduced pollution). The header file written by this module,
typically ppport.h, attempts to bring some of the newer Perl API features to
older versions of Perl, so that you can worry less about keeping track of old
releases, but users can still reap the benefit.
Devel::PPPort contains a single function, called WriteFile. Its only purpose is
to write the ppport.h C header file. This file contains a series of macros and,
if explicitly requested, functions that allow XS modules to be built using
older versions of Perl. Currently, Perl versions from 5.003 to 5.10.0 are
This module is used by h2xs to write the file ppport.h.
* Version 1.x of Devel::PPPort was written by Kenneth Albanowski.
* Version 2.x was ported to the Perl core by Paul Marquess.
* Version 3.x was ported back to CPAN by Marcus Holland-Moritz.
Calculate digests, also called fingerprints or hashes, of some data.
DublinCore::Record is an abstract class for manipulating DublinCore metadata. The Dublin Core is a small set of metadata elements for describing information resources. For more information on embedding DublinCore in HTML see RFC 2731
The Exporter module implements an import method which allows a module to export
functions and variables to its users' namespaces. Many modules use Exporter
rather than implementing their own import method because Exporter provides a
highly flexible interface, with an implementation optimised for the common
Perl automatically calls the import method when processing a use statement for
a module. Modules and use are documented in perlfunc and perlmod. Understanding
the concept of modules and how the use statement operates is important to
understanding the Exporter.