This is yet another file/directory handler that does a bit more than
Path::Class for some parts, and a bit less for other parts. One of
the main difference is Path::Extended always tries to use forward
slashes when possible, ie. even when you're on the MS Windows, so that
you don't need to care about escaping paths that annoys you from time
to time when you want to apply regexen to a path, especially in file
tests that use 'like' or 'compare'.
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.
This module 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 object'. An animation object can
have a callback routine that controls the position and frame of the
object.
If the constructor is passed no arguments, it assumes that it is
running full screen, and behaves accordingly. Alternatively, it can
accept a curses window (created with the Curses newwin call) as an
argument, and will draw into that window.
Term::Screen is a very simple screen positioning module that should work
wherever `Term::Cap' does. It is set up for Unix using stty's but these
dependencies are isolated by evals in the `new' constructor. Thus you may
create a child module implementing Screen with MS-DOS, ioctl, or other
means to get raw and unblocked input. This is not a replacement for
Curses -- it has no memory. This was written so that it could be easily
changed to fit nasty systems, and to be available first thing.
Tie::Hash::TwoWay will take a list of one-way associations and
transparently create their reverse. For instance, say you have a list
of machines, and a list of classes that each machine belongs to.
Tie::Hash::TwoWay will take the machines, one by one, with an associated
array reference of class names, and build the reverse mapping of classes
to machines. All the mappings are stored as hashes. You can access the
secondary mappings as if they were hash keys in their own right.
Someone asked on Perlmonks if a hash could do fuzzy matches on keys - this
is the result.
If there's no exact match on the key that you pass to the hash, then the
key is treated as a regex and the first matching key is returned. You can
force it to leap straight into the regex checking by passing a qr'ed regex
into the hash like this:
my $val = $h{qr/key/};
exists and delete also do regex matching. In the case of delete all values
matching your regex key will be deleted from the hash.
mem is a trivial pragma to either allow defining the module it is included from
as being defined so that later classes or packages in the same file can use the
package to pull in a reference to it, or to be able to call its import routine
from a different package in the same file.
With parameter assignments or other actions, it forces those assignments to be
done, immediately, at compile time instead of later at run time. It can be use,
for example, with Exporter, to export typed-sub's among other usages.
When you define a function, or import one, into a Perl package, it will
naturally also be available as a method. This does not per se cause
problems, but it can complicate subclassing and, for example, plugin
classes that are included via multiple inheritance by loading them as
base classes.
The "namespace::clean" pragma will remove all previously declared or
imported symbols at the end of the current package's compile cycle.
Functions called in the package itself will still be bound by their
name, but they won't show up as methods on your class or instances.
PCCTS - The Purdue Compiler Construction Tool Set
PCCTS is a set of public domain software tools designed to
facilitate the implementation of compilers and other
translation systems. These tools currently include antlr,
and dlg.
In many ways, PCCTS is similar to a highly integrated
version of YACC [Joh78] and LEX [Les75]; where antlr (ANother
Tool for Language Recognition) corresponds to YACC and dlg
(DFA-based Lexical analyzer Generator) functions like LEX.
However, PCCTS has many additional features which
make it easier to use for a wider range of translation
problems.
PCRE2 is the name used for a revised API for the PCRE library, which is
a set of functions, written in C, that implement regular expression
pattern matching using the same syntax and semantics as Perl, with just
a few differences. Some features that appeared in Python and the
original PCRE before they appeared in Perl are also available using the
Python syntax. There is also some support for one or two .NET and
Oniguruma syntax items, and there are options for requesting some minor
changes that give better ECMAScript (aka JavaScript) compatibility.