This module implements a rudimentary shell script parser in Perl.
The Shell::Source allows arbitrary shell scripts, or other programs for
that matter, to be run and their environment to be inherited into a Perl
program.
Smart comments provide an easy way to insert debugging and tracking code into
a program. They can report the value of a variable, track the progress of a
loop, and verify that particular assertions are true.
Best of all, when you're finished debugging, you don't have to remove them.
Simply commenting out the use Smart::Comments line turns them back into
regular comments. Leaving smart comments in your code is smart because if you
needed them once, you'll almost certainly need them again later.
Sort::Key provides a set of functions to sort object arrays by some
(calculated) key value.
This module has two main goals: to make it easy to create correct sort
functions, and to make it simple to select the optimum sorting algorithm
for the number of items to be sorted. Sort::Maker generates complete
sort subroutines in one of four styles, plain, orcish manouver,
Schwartzian Transform and the Guttman-Rosler Transform. You can also get
the source for a sort sub you create via the sorter_source call.
Sort::Tree implements a mechanism for sorting a list of objects into a
tree structure and flattening it back into a list. Among other things,
this is useful for displaying database queries in hierarchical views,
such as nested categories, parent-child relationships, threaded
discussions, and so forth.
Trees have a lot to do with Graph theory, so if this module doesn't suit
your fancy, have a look at the Graph:: Perl modules for an academically
oriented implementation that employs vertex, edge, and node operations.
For more information on how to use the perl module, see the
pod documentation via the command
perldoc Sort::Tree
or, after installation, view the man pages with
man Sort::Tree
Sort::Versions allows easy sorting of mixed non-numeric
and numeric strings, like the "version numbers" that many
shared library systems and revision control packages use.
This is quite useful if you are trying to deal with shared
libraries. It can also be applied to applications that
intersperse variable-width numeric fields within text.
Other applications can undoubtedly be found.
For an explanation of the algorithm, it's simplest to look
at these examples:
1.1 < 1.2
1.1a < 1.2
1.1 < 1.1.1
1.1 < 1.1a
1.1.a < 1.1a
1 < a
a < b
1 < 2
1 < 0002
1.5 < 1.06
Spiffy is a framework and methodology for doing object oriented
programming in Perl. Spiffy combines the best parts of Exporter.pm,
base.pm, mixin.pm and SUPER.pm into one magic foundation class. It
attempts to fix all the nits and warts of traditional Perl OO, in a
clean, straightforward and (perhaps someday) standard way.
The Storable package brings you persistency for your perl data
structures containing SCALAR, ARRAY, HASH or REF objects, i.e. anything
that can be conveniently stored to disk and retrieved at a later time.
It can be used in the regular procedural way by calling store with a
reference to the object to store, and providing a file name. The routine
returns undef for I/O problems or other internal error, a true value
otherwise. Serious errors are propagated as a die exception.
To retrieve data stored to disk, you use retrieve with a file name, and
the objects stored into that file are recreated into memory for you, and
a reference to the root object is returned. In case an I/O error
occurred while reading, undef is returned instead. Other serious errors
are propagated via die.
Stream::Buffered is a buffer class to store arbitrary length of byte
strings and then get a seekable filehandle once everything is
buffered. It uses PerlIO and/or temporary file to save the buffer
depending on the length of the size.