Text::Balanced - Extract delimited text sequences from strings.
The various extract_... subroutines may be used to extract a delimited
string (possibly after skipping a specified prefix string). The search
for the string always begins at the current pos location of the string's
variable (or at index zero, if no pos position is defined).
-Anton
Given a piece of text and some search terms, produces an object
which locates the search terms in the message, extracts a reasonable-length
string containing all the search terms, and optionally dumps the string out
as HTML text with the search terms highlighted in bold.
Text::Diff provides a basic set of services akin to the diff(1) utility.
It is not anywhere near as feature complete as diff(1), but it is better
integrated with Perl and available on all platforms. It is often faster
than shelling out to a system's diff(1) executable for small files, and
generally slower on larger files.
-Anton
<tobez@FreeBSD.org>
A plethora of tools exist that operate as filters: they get data from a
source, operate on this data, and write possibly modified data to a
destination. In the Unix world, these tools can be chained using a
technique called pipelining, where the output of one filter is connected
to the input of another filter. Some non-Unix worlds are reported to
have similar provisions.
To create Perl modules for filter functionality seems trivial at first.
Just open the input file, read and process it, and write output to a
destination file. But for really reusable modules this approach is too
simple. A reusable module should not read and write files itself, but
rely on the calling program to provide input as well as to handle the
output.
Text::Filter is a base class for modules that have in common that they
process text lines by reading from some source (usually a file),
manipulating the contents and writing something back to some destination
(usually some other file).
This module can be used 'as is', but its real power shows when used to
derive modules from it.
-Anton
<tobez@FreeBSD.org>
This module provides a flexible way to wrap and flow text for both ASCII and
non-ASCII outputs.
The main purpose of this module is to provide text wrapping and flowing
features without being tied down to ASCII based output and fixed-width
fonts. My needs were for a more sophisticated text control in PDF and GIF
output formats in particular.
This module is for reading record-oriented data. The most common example have
records separated by newlines and fields separated by commas or tabs, but this
module aims to provide a consistent interface for handling sequential records
in a file however they may be delimited.
This is a module that parses WDDX packets. Which are
well supported in Allaire Coldfusion, and pretty
useful.
This is from the WDDX.org web site: "The Web Distributed
Data Exchange, or WDDX, is a free, open XML-based
technology that allows Web applications created with any
platform to easily exchange data with one another over the
Web."
The Sitemap Protocol allows you to inform search engine
crawlers about URLs on your Web sites that are available
for crawling. A Sitemap consists of a list of URLs and
may also contain additional information about those URLs,
such as when they were last modified, how frequently they
change, etc.
This is a very simple filter. One common cause of grief (and programmer
error) is that XML parsers aren't required to provide character events
in one chunk. They can, but are not forced to, and most don't. This
filter does the trivial but oft-repeated task of putting all characters
into a single event.
XML::Parser::EasyTree adds a new "built-in" style called "EasyTree" to
XML::Parser. Like XML::Parser's "Tree" style, setting this style causes the
parser to build a lightweight tree structure representing the XML document.
This structure is, at least in this author's opinion, easier to work with than
the one created by the built-in style.