AI::Prolog is a predicate logic engine implemented in pure Perl.
Algorithm::Diff is a module for computing the difference between two files, two strings, or any other two lists of things. It uses an intelligent algorithm similar to (or identical to) the one used by the Unix `diff' program.
Alzabo allows a programmer to create a set of schema, table, column, etc. objects that represent a data model. Alzabo is also capable of reverse engineering an existing data model.
This module offers a simple API for io, timer and completion callbacks, independent of the event loop in use. This allows module authors to use those events internally without forcing users of the module on a specific event loop. Currently supported are Event, Coro::Event, Glib and Tk.
Apache::Admin::Config provides a Perl object-oriented interface for reading and writing Apache-like configuration files without affecting comments, indentation, or truncated lines.
Apache::Gallery is a mod_perl handler that sits on top of your
DocumentRoot and works it's magic on jpeg (and soon png) files.
Apache::PageKit is a mod_perl based application framework that uses HTML::Template and XML to separate the design from the content. Includes session management, authentication, form validation, co-branding, and a content management system.
Apache::SearchEngineLog is written for use with mod_perl, which logs the terms entered in search engines (that lead to your site) into a SQL database for later analysation.
Apache::Storage is a module for storing information in Apache so the additional requests can gain access to it.
App-gh provides an interface for you to clone, fork, and search GitHub repositories from the command line.
App::Nopaste allows easy access to any pastebin from the command line or a Perl program.
Archive::Zip is a module that uses the Compress::Zlib module to read and write .ZIP files.
Asterisk::LDAP is a perl module for generating Asterisk 1.0 compatible configuration files from an LDAP directory tree. The package includes everything you need to get started, including the module itself, schema files, and example code.
Astro::FITS::Header are tools for reading, modifying and then writing out FITS standard header blocks to FITS and NDF files.
Audio::BunnyMusicFile is a Perl module for working with various music file formats in a consistent way.
Audit-Perl is a set of modules to make processing of source code vulnerability scanners easier. Each scanner is implemented as a separate module which parses the results and stores them into a common data format.
Averist is a module that gives you an authentication layer to any web based application. With support for initial authentication through a CGI form, Averist can use CGI (hidden fields) or cookies for reauthentication (after configurable time out), and also for increased security use a local SQL-based database for storing the session keys.
Bare XML is a "bare" XML parser with all primary parsing done via a simple state engine with about 20 or so different states.
Bio::SeqReader provides a lightweight alternative to Bioperl when all you really need is a helper for reading sequence data.
bioperl is a collection of "standard" CPAN type modules. Read more
Business::Associates is a small set of modules using perl and XSLT to manipulate the new XML interface that Amazon.com provides.
Business::OnlinePayment::WorldPay::Junior tracks transactions made via the WorldPay Select Junior online payment service and to verify callbacks from WorldPay indicating that a transaction has been authorised or cancelled
C-DynaLib is a Perl module that allows Perl programs to call C functions in dynamic libraries.
Carp::Clan is a module that reports errors from the perspective of the caller of a "clan" of modules, similar to "Carp.pm" itself.
CGI::SHTML is a module for parsing Server-Side Includes (SSIs) within CGI scripts. It is used extensively on the TCB web site.
CGI::Utils is a Perl module for retrieving information through the Common Gateway Interface and mod_perl.
Chipcard::CTAPI is for accessing chipcard terminals based on the standardized CTAPI library. It provides not only the CTAPI functions but also a complete set of convenience methods for easy reading and writing of memory cards.
Class::Date provides a simple date type for Perl.
Class::EHierarchy is intended for use as a base class where hierarchally ordered objects are desired.
Class::MethodMaker solves the problem of having to write a bazillion get/set methods that are all the same. The argument to 'use' is a hash whose keys are the names of types of generic methods generated by MethodMaker and whose values tell method maker what methods to make.
CONFIG:: caches files (re-reads the files if necessary) to speed up the file reading. It is possible to configurethe module to remove comments, trailing blanks, empty lines or to do other useful things only once.
This perl module opens a config file and parses it's contents for you. It provides variable interpolation, saving of configs (kinda serializer), an OOP-Interface and much more.
Config::Model provides a framework to help in validating the semantic content of configuration data. It can also be used to provide a semantic check of options of a complex program like mplayer or transcode.
Config::Model::CursesUI provides a curses user interface for all configuration descriptions created for config-model. This project is based on the Curses::UI Perl module.
Config::Model::OpenSsh is a graphical configuration editor for OpenSSH configuration files (e.g. /etc/ssh/sshd_config, /etc/ssh/ssh_config, or ~/.ssh/config).
Config::Model::TkUI provides a graphical interface to Config::Model.
Config::Model::Xorg provides a configuration model for xorg.conf.
Config::Natural can read configuration files with a simple but very flexible syntax.
Config::Record provides a module for loading configuration records. It supports scalar, array, and hash parameters nested to an arbitrary depth.
Config::YUM is a Perl module used to parse a yum.conf file. It can download remote include files and includes local include files.
Data::Config can read configuration files with a simple but very flexible syntax.
DBD::Oracle is an Oracle interface for Perl 5. It is a driver for Perl's DBI framework.
DBI::Frame is an extension of the standard DBI Perl module, designed
around mysql, and used to create and maintain frameworks for databases.
DBIWrapper provides easier access to databases using DBI. It currently supports MySQL, PostgreSQL and ODBC DBD drivers. High level methods for reading, writing, commiting and rolling back transactions are provided. The DBI data structures can still be used to return the data in.
DBIx::AnyDBD provides application developers with an abstraction class a level away from DBI, that allows them to write an application that works on multiple database platforms
DBIx::Browse facilitates the browsing (INSERT, UPDATE and DELETE) of related database tables.
DBIx::CGI is an easy to use DBI interface for CGI scripts. Currently only the Pg and mSQL drivers are supported.
DBIx::Easy is an easy to use DBI interface. Currently only the Pg, mSQL and mysql drivers are supported.
DBIx::Password allows you to create a global password file for DB passwords.
The DBIx::Perlish module provides the ability to work with databases supported by the DBI module using Perl's own syntax for the four most common operations: SELECT, UPDATE, DELETE, and INSERT. By using DBIx::Perlish, you can write most of your database queries using a domain-specific language with Perl syntax. However, the module is not intended to replace all use of SQL in your program. The DBIx::Perlish module quite intentionally neither implements nor cares about database administration tasks like schema design and management.
DBIx::Timeout is a Perl module that provides a safe method of timing out DBI requests. The method described in the DBI documentation uses unsafe signals, which may cause memory corruption. DBIx::Timeout instead uses a separate timeout process.
The DBIx::Wrapper::Config module allows the use of a configuration file in XML specifying information required to connect to databases using DBIx::Wrapper. This way, your database connection specifications can be kept in one place.
DiBa.pm provides customers of the German bank "DiBa" with the ability to fetch their account information over the Web from within Perl-scripts.
Dir::List provides you with various information about a specified directory. For example, it can obtain the user and group of files, the sizes of sub-directories, the filetype, and accessibility.
Dotiac::DTL is a module that can interpret and compile templates written in the Django Template Language for the programming language Perl. It is simple and extensible, and focuses on fast parsing and execution instead of syntax checks.
dTemplate provides a flexible template system.
The Fey distribution contains a set of modules for representing the components of a DBMS schema, and for dynamically generating SQL queries based on that schema.
File-CacheDir handles temporary files and their cleanup without a cron.
File-Find-Object provides Perl programmers with an object-oriented alternative to the core File::Find module for traversing a directory structure, which has some serious interface limitations.
File::Cache enables the sharing of object data across processes via the filesystem.
FileHandle::Unget is a Perl FileHandle supporting multi-byte unget.
Finance-Bank-ID-BCA is a Perl module that provides a rudimentary interface to the Web-based online banking interface of the Indonesian Bank Central Asia (BCA).
Finance::Bank::HDFC provides an interface to the HDFC netbanking service.
Finance::Currency::Convert converts currencies.
Finance::Currency::Format formats amounts of money in different currencies for display.
GConf-FS allows you to view a gconf tree as a filesystem. GConf-FS uses the GConf Perl binding (Gnome2::GConf) and the FUSE Perl binding.
Geo::METAR is a Perl module for accessing aviation weather information.
gnatsperl is a collection of modules providing a perl interface to the gnatsd daemon (GNU gnats issue tracking system). It is intended to allow developers to more easily create tie-in applications to gnats.
GnuPG::Interface is a interface to interacting with GnuPG. It implements a rich set of filehandle communications with GnuPG and includes a key object organization structure, with information gathered from GnuPG's with-colons option.
Google::Adwords is a Perl Module which provides a simple to use API for the Google Adwords SOAP based API. It hides the complexity of using SOAP and provides a full object oriented interface.
Gtk2::Ex::Datasheet::DBI is a Perl module that is used in conjunction with Gtk2::Perl to give data-aware "datasheet" functionality. The programmer creates a GUI with Gtk2-Perl (and possibly Gtk2-GladeXML), and then creates a Gtk2::Ex::Datasheet::DBI object, which then "binds" a DBI data source to the datasheet, managing querying, navigating records, applying updates to the database, and error handling.
HTML-Widgets-NavMenu is a Perl module to generate navigation menus and control site flow. It supports many advanced features such as building relative links or absolute links, selective expansion, and multi-host sites.
HTML::Defaultify populates HTML forms with default values.
HTML::GenToc is a module for generating a Table of Contents from HTML documentation, and hypertoc is a script which uses it to do the same.
HTML::Template is a simple, fast HTML Templating module for Perl with added features for Apache/mod_perl. This module is distinguished from others serving a similar purpose by a clear distinction between programming and layout.
Image::Grab allows you to easily grab an image with an oft-changing URL from the internet.
Image::Size is a module that retrieves height and width specification from an image file. It recognizes most of the more common formats, including JPEG, GIF, PNG, XBM, XPM, BMP and the PPM family.
IMAP::Admin is a Perl module for IMAP server administration. It lets you do things like create/delete email, manage acls, manage quotas, etc.
IO::AIO implements fully asynchronous I/O (not non-blocking I/O) that lets your program stay in control and interactive even when doing heavy disk (or other) I/O. It provides asynchronous versions of read(), write(), open(), stat(), unlink(), rename(), utime(), readlink(), and most other standard syscalls as well as interfaces to sendfile(), readahead(), and other esoteric syscalls, complete with emulation on systems that don't support them. It also offers convenience functions to load whole files and more.
IP::Country is a tool for fast lookup of country codes from IP addresses. Finding out the country of a client using only the IP address can be difficult.
Job-Machine is a small, but versatile system for sending jobs to a message queue and, if necessary, communicating answers back to the sender. Job::Machine uses LISTEN / NOTIFY from PostgreSQL to send signals between clients and workers.
JSON::DWIW is a Perl module that converts Perl data structures to and from JSON. It does what most Perl programmers would expect without having to set any extra options. For example, it converts objects to their underlying data structures (for hash or array) and turns IO objects into strings. It is also faster than the JSON or JSON::Syck modules on CPAN in the developer's tests.
JSON::XS implements JSON for Perl. Unlike other modules, its primary goal is to encode to syntactically correct JSON and flag invalid JSON while decoding.
KiokuDB is a frontend to various data stores. Its purpose is to provide persistence for "regular" objects with as little effort as possible, without sacrificing control over how persistence is actually done, especially for objects that are harder to serialize.
LCD::MatrixOrbital is a library module for accessing, and printing to a MatrixOrbital display from perl.
Lemonldap::NG is a modular Web SSO based on Apache::Session modules. It simplifies the building of a protected area with a few changes in the application.
libCIM is a collection of Perl modules which serves as a basis for an implementation of the CIM (Common Information Model).
libxml-perl is a collection of smaller Perl modules, scripts, and documents for working with XML in Perl. libxml-perl software works in combination with XML::Parser, PerlSAX, XML::DOM, XML::Grove and others.
Lingua::PT::Nums2Words is a module for Perl that computes Portuguese (Brazilian) verbage from integer numerical values.
Linux::Distribution tries to detect the Linux distribution in which the program is run by looking in release files in /etc and by using lsb-release.
LJ::Simple is a relatively trival module which shows an OOP API to the world and allows the caller to deal with LiveJournal work.
Locale::Memories is a specialized search engine designed to retrieve localization messages from .po files.
Mail::DeliveryStatus::BounceParser analyzes RFC822 bounce messages and returns a structured description of the addresses that bounced and the reason they bounced.
Mail::Mbox::MessageParser is a module for fast parsing of mbox mail folders.
MAS::TIFF is a pure Perl package for reading TIFF image metadata and samples.
Math-Random-Xorshift is a Perl module that contains a straightforward implementation of the Xorshift PRNG algorithm proposed by G. Marsaglia in 2003.
Math::GSL is a Perl API to the GNU Scientific Library, which contains a large set of tools for writing scientific computing applications, like statistical distributions, special functions, random number generators, linear algebra, numeric integration/derivatives, FFTs, wavelets, and much more.
Math::MatrixReal is a Perl module for manipulating NxM real matrices. Some of the notable features are operator overloading, LR decomposition, eigenvalue/eigenvector algorithms for symmetric matrices, and export to Matlab/LaTeX/Yacas formats.
mod_jail makes running Apache 1.3 in a secure FreeBSD jail prison easy. It is also able to change the securelevel within a created jail prison.
Module-Format aims to simplify installing a large number of Perl modules (or their associated CPAN distributions) which are often stringified into various different formats in the Perl world.
Module::Reloadable is a module which can be used to reload a Perl module in a
running Perl program.
Name::Find is a Perl module for finding names in a text string. It doesn't look for a particular name, variations of names in the form: Honorific GivenName1 GivenName2 Surname Suffix. where some parts may not exist and GivenName1 and 2 may be initials.
Net::DRI is a collection of object oriented Perl modules that provides an abstract and uniform interface to connect to domain name providers, either registries, registrars or an entity at another level.
Net::Gandi is a Perl module that provides a Perl interface to the Gandi API. The Gandi API allows you to manage server hosting resources provided by Gandi.net.
Net::ICal is an object-oriented Perl module for handling iCalendar (RFC2445) data.
Net::ICQ is a set of Perl modules that allow you to access the ICQ Instant Messaging. These modules provide you access to creating/receiving messages, writing clients, etc.
Net::Server is an extensible, class oriented module written in perl and intended to be the back end layer of internet protocol servers.
Net::Server::Mail is a versatile and extensible implementation of the SMTP protocol and its different evolutions like ESMTP and LMTP.
Net::SMPP is an implementation of Short Message Peer to Peer protocol over TCP. This protocol is frequently used in the telecoms and mobile operator world to pass short messages between systems that implement the short message service (SMS). It is applicable to both european GSM and american CDMA based systems.
This is an object-orienated perl module that provides methods to query, retrieve and update RIPE-157 and RPSL formated objects, from whois servers that support this format.
Net::Z3950::SimpleServer is a Perl module which is intended to make it as simple as possible to develop new Z39.50 servers over any type of database imaginable. All you have to do is implement a function for initialising your database (optional), searching the database, and returning "database records" on request.
News::Overview is an object class for storing combined information about a specific newsgroup in a compressed and usable manner. It is based on the semi-codified XOVER extension to RFC1036.
NewsLib is a library of Perl modules for managing Network News services. It's meant to be used for code-reuse and sharing when writing news-based applications.
Ogg::Vorbis::Header is for viewing and modifying info and comment fields of files encoded in the Ogg Vorbis compressed audio format. This module utilizes Inline::C, a bridge between Perl and C, to access the underlying Vorbis libraries available from xiph.org.
OpenEAFDSS is a Perl library that handles the communication with an Electronic Signature Device.
OpenGeoDB Perl module
OpenGeDB Perl module is a module to access the OpenGeoDB database and calculate all ZIP codes in a certain radius.
Options.pm is a command-line option-parsing Perl module meant to imitate the t.p.usage.Options module from the Twisted Python library.
ORLite is an object-relation system specifically tailored for SQLite that follows many of the same principles as the ::Tiny series of modules.
Parallel::ForkManager is a module for people who wanted to do independent tasks in parallel and want to control how many task they are running.
Parse-PerlConfig defines parse(). This function creates a namespace, reads in Perl code, evals it, and then examines the namespace's symbol table for scalars, hashes, arrays, subroutines, IO handles, and globs. It then does what you tell it to with these symbols.
Payroll Perl Modules
Payroll Perl Modules is a series of Perl Modules that provides an API for working with multiple countries federal, state and local taxes. It also supports calculating mileage reimbursement values and can handle adjustment entries.
PDF::API2 is 'The Next Generation' of Text::PDF::API, a Perl module-chain that facilitates the creation and modification of PDF files. It features support for the 14 base PDF Core Fonts, TrueType fonts, and Adobe-Type1, with unicode mappings, embedding of bitmap images, compression via zlib, and a rich object-oriented API.
PDF::API2::Simple is a simple wrapper for the PDF::API2 modules.
PDL gives standard Perl the ability to compactly store and speedily manipulate the large N-dimensional data arrays which are the bread and butter of scientific computing.
Perl Beans is an implementation of the Java Beans framework in Perl.
Perl Cache is the successor to the File::Cache and IPC::Cache modules. This project unifies those modules with the generic Cache::Cache interface and implements Cache::FileCache, Cache::MemoryCache, Cache::SharedMemoryCache, and Cache::SizeAwareFileCache.
Perl GPS provides access to a GPS device, fully written in Perl.
Perl Site Tools
Perl Site Tools is a collection of modules for perl that allow easy template integration, SQL forms creation, tables, sessions, and various other things that make web development a little easier to manage.
Perl::Critic is an extensible framework for creating and applying coding standards to Perl source code. Essentially, it is a static source code analysis engine.
Perl-LZO provides LZO bindings for Perl 5.
Perl-RPM is an attempt at native Perl-level bindings for the RPM Package Manager.
perl-Sedna is a Perl driver to connect to the Sedna XML database
Perlbal is a Perl-based reverse proxy load balancer and Web server. It processes hundreds of millions of requests a day just for LiveJournal, Vox, and TypePad, and dozens of other "Web 2.0" applications.
PerLDAP is a set of modules written in Perl and C that will allow developers to leverage their existing Perl knowledge to easily write to and manage LDAP-enabled directories.
PerlMRIM is a simple GUI client for the Mail.Ru instant messenger, aka Mail.Ru Agent.
perlver (Perl::MinimumVersion) takes Perl source code and calculates the minimum version of Perl required to be able to run it.
PHP::Session is a Perl module which provides a way to read and write PHP4 session files. This allows you to make your Perl Web applications share session data with your PHP4 Web applications.
Plack is a set of tools for using the PSGI stack.
plSTDF is a module intended for working with the Terradyne STDF file format.
PPI allows you to parse, analyze, and manipulate Perl (without Perl). It provides a Perl parse that is the basis of tools like Perl::Critic and Perl::MinimumVersion.
Proc::Reliable is a Perl subprocess execution module. For reliable, efficient, configurable, convenient subprocess execution in Perl.
Robotics::IRobot provides a Perl interface for controlling and accessing sensor data from iRobot robots that support the OI Interface.
RPC::XML is an implementation of the XML-RPC standard in Perl. The goal is to provide a client, a stand-alone server and an Apache/mod_perl content-handler class.
SAP::Rfc is a module designed to facilitate RFC calls to an SAP R/3 system of release 3.1x and above.
Scrape::USPS::ZipLookup standardizes U.S. postal addresses.
Search::Xapian is a Perl XS frontend to the Xapian C++ search library. It is a fairly complete wrapper: most features of the Xapian library are made available for use from Perl.
Sman is "The Searcher for Man Pages", an enhanced version of "apropos" and "man -k". Sman adds several key abilities over its predecessors, including stemming and support for complex boolean text searches such as "(linux and kernel) or (mach and microkernel)". It shows results in a ranked order, optionally with a summary of the manpage with the searched text highlighted. Searches may be applied to the manpage section, title, body, or filename. The complete contents of the man page are indexed. A prebuilt index is used to perform fast searches.
SNMP::Info is a Perl5 Module that provides an object-oriented interface to Network Devices and data stored in SNMP MIBs.
SOAP::Clean is a set of modules for quickly and simply deploying SOAP client and servers. On the server-side, it is intended to enable legacy, command-line oriented applications to be made into Web Services with little or no modification. On the client-side, it is intended to make Web Services look like legacy, command-line oriented applications.
Spreadsheet::WriteExcel is a Perl module which can be used to create native Excel binary files. Formatted text and numbers can be written to multiple worksheets in a workbook. Formulas and functions are also supported. It is 100% Perl and doesn't require any Windows libraries or a copy of Excel. It will also work on the majority of Unix and Macintosh platforms. Generated files are compatible with Excel 97, 2000, 2002, and 2003, and with OpenOffice and Gnumeric. An older version also supports Excel 5/95.
Statistics-Descriptive is a Perl module to perform Statistical Analysis on numeric data.
TableMap is a module written for making it easy to query simple data from databases.
Tagreader is an extension module which allows you to read HTML or XML files tag by tag in a manner similar to reading text files with "while(<>)".
Term::Animation provides a framework to produce sprite animations using
ASCII art. Each ASCII 'sprite' is given one or more frames, and placed into the animation as an 'animation entity'.
Test-Run is an improved test harness for scripts that emit TAP (Test Anything Protocol). It was forked from Test::Harness, and it uses TAP::Parser.
Test::Cmd is a class for writing portable tests of external commands or scripts. Its key features include portable interfaces for file system interaction, including management and cleanup of one or more temporary working directories.
Test::Warn is a Perl module that provides a few convenience methods for testing warning-based Perl code. It can help determine whether methods are issuing correct warnings and whether the number of warnings is correct.
Text-Pipe aims at offering a common text filter API so that if you want to use text pipes with Template Toolkit, you just need to write an adapter.
Text::Template is a module for filling in templates. A template is a file or a string that has bits of Perl code, called program fragments, embedded in it. Program fragments are delimited by curly braces.
Text-Tokenizer is a Perl module which is based on the flex generated lexical analyzer that can be used for parsing of text (configuration) files.
Text::Xslate is a template engine, tuned for persistent applications, safe as an HTML generator, and with rich features. The concept of Xslate is sandboxing.
Tie-REHash is a Perl extension that provides a tie()d implementation of RegExp Hash (REHash) that allows regular expression "keys" to be used along with plain keys.
Tie::Array::FileWriter is a module for writing records to files as items are pushed onto a virtual array.
Tie::Table is a module for making easy to query data from databases.
UI::Dialog is an OOPerl wrapper for various dialog applications. It supports the dialog backends Zenity, XDialog, GDialog, KDialog, CDialog, and Whiptail. There is also an ASCII backend provided as a last resort interface for the console-based dialog variants.
UnixODBC.pm provides a Perl API for the unixODBC driver manager and a bridge API for unixODBC network queries. The sample text-mode, GUI, and Web clients can manage multiple hosts and DBMSs and create RSS output.
URL::Grab is a Perl module that drastically simplifies the fetching of files. It is designed to be used in programs that need common (but not necessarily simple) URL fetching features.
Vimana is an easy-to-use system for searching, installing, and downloading vim scripts.
WWW-Analytics-MultiTouch is a tool and a Perl library for multi-touch Web analytics.
WWW::phpBBp is a Perl module to copy a phpBB forum through the Web interface. Updates to a previously scraped copy can be done. The "mforum" script is supported.
WWW::Quvi provides a Perl interface to libquvi, a library for parsing video download links.
WWW::RapidShare is a Perl module for downloading files from rapidshare.com. It currently only supports rapidshare.com premium accounts.
wxPerl allows a Perl program to use the wxWidgets GUI toolkit.
XAO Indexer is a set of Perl modules created primarily for building dynamic, database driven web sites. It includes object oriented database layer that completely hides SQL yet is still efficient enough; web templating language strongly separating code and templates; indexing software for quick full-text searches.
XMail::Ctrl allows for easy access to the Crtl functions for XMail. It operates over TCP/IP so it can be used to communicate with either Windows or Linux based XMail servers.
XML-Grammar-Fiction is a Perl package that provides processors for lightweight markup languages and corresponding XML grammars for writing prose (e.g. stories, novels, and novellas) as well as screenplays.
XML-Grammar-Fortune is a Perl/RelaxNG/XSLT module that allows one to collect quotes using an XML grammar, with richer metadata, and to produce XHTML and plain text (Unix-like fortune format) from them.
XML-Grammar-Screenplay is a set of Perl modules for translating a well-formed plain text format representing a screenplay to a custom XML format, which in turn is converted to HTML or DocBook/XML.
XML::LibXML provides a Perl interface to libxml2, providing XML and HTML parsers with DOM, SAX, and XMLReader interfaces, a large subset of the DOM Layer 3 interface, and an XML::XPath-like interface to the XPath API of libxml2
XML::Twig is a Perl module used to process XML documents.
XML::XPath implements the W3C's XPath specification. It aims to be completely correct to the letter of the spec, and yet still allow extensions through the use of functions and variables, such as are provided by XSLT and XPointer.
XML::XSLT is an implementation of XML stylesheet Transformations in Perl.