The Inline::Python module allows you to put Python source code directly
"inline" in a Perl script or module. It sets up an in-process Python
interpreter, runs your code, and then examines Python's symbol table for
things to bind to Perl. The process of interrogating the Python
interpreter for globals only occurs the first time you run your Python
code. The namespace is cached, and subsequent calls use the cached version.
Inline::TT provides Inline access to version 2.0 and higher of the Template
Toolkit. This allows you to house your templates inside the source code file,
while retaining the ability to cache compiled templates on the disk (via
Inline's caching mechanism).
The names of the blocks in the template are exported as functions. Call these
with a reference to a hash of values, which will be used for interpolation in
the templates. This hash reference is the same as the second argument to the
process method of any Template object. The output from template toolkit will be
returned to you as a single string. Note that leading and trailing spaces are
trimmed, further the template toolkit options PRE_CHOMP and POST_CHOMP are set.
Currently, there is no way to change these behaviors.
The Inline::Tcl module allows you to put Tcl source code directly
"inline" in a Perl script or module. A Tcl interpreter is loaded and the
Tcl code is interpreted, then Perl asks the Tcl interpreter which global
procedures have been defined. Those functions are made available to your
Perl program as if they had been written in Perl.
The process of interrogating the Tcl interpreter for globals only occurs
the first time you run your Tcl code. The namespace is cached, and
subsequent calls use the cached version.
The Inline module allows you to put source code from other programming
languages directly "inline" in a Perl script or module. The code is
automatically compiled as needed, and then loaded for immediate access
from Perl.
Inline saves you from the hassle of having to write and compile your own
glue code using facilities like XS or SWIG. Simply type the code where
you want it and run your Perl as normal. All the hairy details are
handled for you. The compilation and installation of your code chunks
all happen transparently; all you will notice is the delay of
compilation on the first run.
The Inline code only gets compiled the first time you run it (or
whenever it is modified) so you only take the performance hit once. Code
that is Inlined into distributed modules (like on the CPAN) will get
compiled when the module is installed, so the end user will never notice
the compilation time.
This module does the same thing as msgfmt from GNU gettext-tools,
except this is pure Perl.
The LockFile::Simple extension provides simple file locking, of
the advisory kind, i.e. it requires cooperation between applications
wishing to lock the same files.
It is meant to be used in quick-and-dirty scripts or more elaborated
programs that want a simple locking scheme, yet with a reasonable
level of configuration.
This module provides filesystem and stream iterator functions. See the
Iterator module for more information about how to use iterators.
This module contains miscellaneous iterator utility functions that I think
aren't as broadly useful as the ones in Iterator::Util. They are here to
keep the size of Iterator::Util down.
For more information on iterators and how to use them, see the Iterator
module documentation.
This module implements many useful functions for creating and manipulating
iterator objects.
An "iterator" is an object, represented as a code block that generates the
"next value" of a sequence, and generally implemented as a closure. For
further information, including a tutorial on using iterator objects, see
the Iterator documentation.
This module is meant to be the definitive implementation of iterators, as
popularized by Mark Jason Dominus's lectures and recent book (Higher Order
Perl, Morgan Kauffman, 2005).
An "iterator" is an object, represented as a code block that generates the
"next value" of a sequence, and generally implemented as a closure. When
you need a value to operate on, you pull it from the iterator. If it
depends on other iterators, it pulls values from them when it needs to.
Iterators can be chained together (see Iterator::Util for functions that
help you do just that), queuing up work to be done but not actually doing
it until a value is needed at the front end of the chain. At that time,
one data value is pulled through the chain.
Iterator.pm provides a class that simplifies creation and use of these
iterator objects. Other Iterator:: modules (see "SEE ALSO") provide many
general-purpose and special-purpose iterator functions.