abbreviations
Paratim 0.1.2
Paratim is the abbreviation of Paratrooper improved. more>>
Paratim is based on the old Paratrooper game by Orion Software. It can be downloaded for free from several abandonware sites.
The current version is playable, but there isnt much improved compared to the old DOS game. This is planned for later releases however.
In the game you play with the gun in the bottom center of the game while helicopters fly overhead. Those helicopters sometimes drop paratroopers. When their are four or more paratroopers on one side of the gun its game over. To prevent this you have to shoot the paratroopers while they fall and/or the helicopters.
After a round of helicopters planes arrive that drop bombs aimed at the gun. If a bomb hits you its game over as well. To prevent this you have to shoot the bomb and/or the airplanes.
The controls of the game are very simple:
Point gun left/right: Arrow key left/right
Shoot bullet: Arrow key up
B::Concise 5.8.8
B::Concise is a Perl syntax tree, printing concise info about ops. more>>
SYNOPSIS
perl -MO=Concise[,OPTIONS] foo.pl
use B::Concise qw(set_style add_callback);
This compiler backend prints the internal OPs of a Perl programs syntax tree in one of several space-efficient text formats suitable for debugging the inner workings of perl or other compiler backends. It can print OPs in the order they appear in the OP tree, in the order they will execute, or in a text approximation to their tree structure, and the format of the information displayed is customizable. Its function is similar to that of perls -Dx debugging flag or the B::Terse module, but it is more sophisticated and flexible.
EXAMPLE
Heres an example of 2 outputs (aka renderings), using the -exec and -basic (i.e. default) formatting conventions on the same code snippet.
% perl -MO=Concise,-exec -e $a = $b + 42
1 enter
2 nextstate(main 1 -e:1) v
3 gvsv[*b] s
4 const[IV 42] s
* 5 add[t3] sK/2
6 gvsv[*a] s
7 sassign vKS/2
8 leave[1 ref] vKP/REFC
Each line corresponds to an opcode. The opcode marked with * is used in a few examples below.
The 1st column is the ops sequence number, starting at 1, and is displayed in base 36 by default. This rendering is in -exec (i.e. execution) order.
The symbol between angle brackets indicates the ops type, for example; < 2 > is a BINOP, < @ > a LISTOP, and < # > is a PADOP, which is used in threaded perls. (see "OP class abbreviations").
The opname, as in add[t1], which may be followed by op-specific information in parentheses or brackets (ex [t1]).
The op-flags (ex sK/2) follow, and are described in ("OP flags abbreviations").
% perl -MO=Concise -e $a = $b + 42
8 leave[1 ref] vKP/REFC ->(end)
1 enter ->2
2 nextstate(main 1 -e:1) v ->3
7 sassign vKS/2 ->8
* 5 add[t1] sK/2 ->6
- ex-rv2sv sK/1 ->4
3 gvsv(*b) s ->4
4 const(IV 42) s ->5
- ex-rv2sv sKRM*/1 ->7
6 gvsv(*a) s ->7
The default rendering is top-down, so theyre not in execution order. This form reflects the way the stack is used to parse and evaluate expressions; the add operates on the two terms below it in the tree.
Nullops appear as ex-opname, where opname is an op that has been optimized away by perl. Theyre displayed with a sequence-number of -, because they are not executed (they dont appear in previous example), theyre printed here because they reflect the parse.
The arrow points to the sequence number of the next op; theyre not displayed in -exec mode, for obvious reasons.
Note that because this rendering was done on a non-threaded perl, the PADOPs in the previous examples are now SVOPs, and some (but not all) of the square brackets have been replaced by round ones. This is a subtle feature to provide some visual distinction between renderings on threaded and un-threaded perls.

Unicode Data Browser 1.5
UnicodeDataBrowser is a very useful browser designed for the UnicodeData.txt file which consists of much useful information but is not easily read by humans. more>>
UnicodeDataBrowser 1.5 is a very useful browser designed for the UnicodeData.txt file which consists of much useful information but is not easily read by humans. The browser creates a scrollable table in which columns represent properties.
The table may be sorted on any column. Abbreviations are expanded and characters cross-referenced in decomposition and casing fields are named. Regular expression search restricted to a selected column is available. The set of characters for which information is displayed may be restricted to those characters matching a regular expression on a specified property.
Each such filtering operation applies to the output of the previous filtering operation unless the table is reset to the original full set of characters, so filtering on multiple properties is possible.
Enhancements: Adds canonical decomposition info for Hangul syllables.
<<lessGetopt::Plus 0.98
Getopt::Plus is a Perl module with options wrapper with standard options, help system and more. more>>
FILE_SIZE_HUMAN
Map from file size in bytes to human name, as hashref, keys being name (full name, lowercase, no trailing s) and abbrev (one/two-letter abbreviation).
Option Types
Permissable values to the type field of an option specifier.
OPT_FLOAT
OPT_INT
OPT_STRING
OPT_FDLEVEL
OPT_BOOLEAN
Error Codes
ERR_OK
Not an error at all. Hence the name.
ERR_ABNORMAL
Not so much an error as a non-erroneous circumstance worthy of signalling, e.g., grep finding no matches.
ERR_UTILITY
Again, not really an error, rather a utility function being called --- e.g., the --help or --version. This gets an error code because it is almost certainly an error to call from batch scripts.
ERR_USAGE
The program was called wrong.
ERR_IO_READ
Some problem reading from disk or network (system read).
ERR_IO_WRITE
Some problem writing to disk or network (system write).
ERR_DB_READ
Some problem reading from db or similar (application read).
ERR_DB_WRITE
Some problem writing to db or similar (application write).
ERR_EXTERNAL
Some problem with an external application.
ERR_INTERNAL
An internal logic error (the sort of thing that should never happen, but has been caught by an internal assertion or sanity check).
ERR_INPUT
Some problem with the input file (which was read fine, but contains bad data).
DateTime::Format::Roman 0.03
DateTime::Format::Roman is a Perl module with roman day numbering for DateTime objects. more>>
SYNOPSIS
use DateTime::Format::Roman;
my $formatter = DateTime::Format::Roman->new(
pattern => %d %f %b %y );
my $dt = DateTime->new( year => 2003, month => 5, day => 28 );
$formatter->format_datetime($dt);
# 5 Kal Jun 2003
This module formats dates in the Roman style.
The Romans expressed their dates in relation to three fixed dates per month. For example: the Ides of March was the 15th of that month; 14 March was called "2 Ides", 13 March was called "3 Ides", etcetera. The days in the second half of the month were named after the first day of the next month, the "Kalends"; e.g. 16 March was called "17 Kalends of April".
METHODS
new( pattern => $string )
Creates a new formatter object. The optional formatting pattern defines the format of the output of format_datetime(). If no formatting pattern is given, a reasonable default is used.
format_datetime($datetime)
Retruns the formatted string. This method can be called on a formatter object (created by new()), or it can be called as a class method. In the latter case, the default pattern is used.
PATTERN SPECIFIERS
The following specifiers are allowed in the format strings given to the new() method:
%b
The abbreviated month name.
%B
The full month name.
%d
The day of the month as a decimal number (including 1 for the fixed days).
%D
The day of the month, written as a number plus the corresponding fixed day.
%f
The fixed day part of the date.
%m
The month as a decimal number (range 1 to 12).
%y
The year as a decimal number.
If a specifier is preceded by O or o, numbers will be written in uppercase and lowercase Roman numerals, respectively.
The %f specifier accepts an additional argument of 1 digit, specifying the length of the output:
%0f : abbreviated name (e.g. "Kal")
%1f : full name (e.g. "Kalends")
%2f : one-letter abbreviation (e.g. "K")
Software::Packager::Solaris 0.1
Software::Packager::Solaris is the Software::Packager extension for Solaris 2.5.1 and above. more>>
SYNOPSIS
use Software::Packager;
my $packager = new Software::Packager(solaris);
This module is used to create software packages in a format suitable for installation with pkgadd. The process of creating packages is baised upon the document Application Packaging Developers Guide. Which can be found at http://docs.sun.com/ab2/@LegacyPageView?toc=SUNWab_42_2:/safedir/space3/coll1/SUNWasup/toc/PACKINSTALL:Contents;bt=Application+Packaging+Developer%27s+Guide;ps=ps/SUNWab_42_2/PACKINSTALL/Contents
FUNCTIONS
new()
This method creates and returns a new Software::Packager::Solaris object.
add_item()
$packager->add_item(%object_data);
This method overrides the add_item function in the Software::Packager module.
This method adds a new object to the package.
package()
$packager->packager(); This method overrides the base API in Software::Packager, it controls the process if package creation.
package_name()
This method is used to specify the abbreviated package name.
Sun say: (Application Packaging Developers Guide. Page 32) A valid package abbreviation must the criteria defined below:
It must start with a letter. Additional charaters may be alphanumeric and can be the two special charaters + and -.
It must be nine or fewer charaters.
Reserved names are install, new, and all.
For more details see the pkginfo(4) man page.
program_name()
This is used to specify the full package name.
The program name must be less that 256 charaters.
For more details see the pkginfo(4) man page.
architecture()
The architecture must be a comma seperated list of alphanumeric tokens that indicate the architecture associated with the package. The maximum length of a token is 16 charaters. A token should be in the format "instruction set"."platform group" where: instruction set is the output of `uname -p` platform group is the output of `uname -m`
If the architecture is not set then the current instruction set is used.
For more details see the pkginfo(4) man page.
version()
This method is used to check the format of the version and return it in the format required for Solaris.
The version must be 256 charaters or less.
The first charater cannot be a left parenthesis.
The recommended format isi an arbitrary string of numbers in Dewey-decimal format. For more datails see the pkginfo(4) man page.
install_dir()
$packager->install_dir(/usr/local);
my $base_dir = $packager->install_dir();
This method sets the base directory for the software to be installed. The installation directory must start with a "/".
compatible_version()
$packager->compatible_version(/some/path/file);
or
$packager->compatible_version($compver_stored_in_string);
my $compatible_version = $packager->compatible_version();
This method sets the compatible versions file for the software to be installed.
space()
$packager->space(/some/path/file);
or
$packager->space($space_data_stored_in_string);
my $space = $packager->space();
This method sets the space file for the software to be installed.
request_script()
$packager->request_script(/some/path/file);
or
$packager->request_script($request_script_stored_in_string);
my $request_script = $packager->request_script();
This method sets the space file for the software to be installed.
Java::JCR 0.08
Java::JCR is a module to use JSR 170 (JCR) repositories from Perl. more>>
SYNOPSIS
use Java::JCR;
use Java::JCR::Jackrabbit;
my $repository = Java::JCR::Jackrabbit->new;
my $session = $repository->login(
Java::JCR::SimpleCredentials->new(username, password)
);
my $root = $session->get_root_node;
my $node = $root->add_node(foo, nt:unstructured);
$node->set_property(bar, 10);
$node->set_property(baz, blah);
$node->set_property(qux, 4.8);
$session->save;
The JSR 170 specification describes a Java-based API for access hierarchical databases. This is generally referred to by the abbreviation JCR, which is an abbreviation for Content Repository API for Java Technology Specification.
The biggest OSS implementation, as of this writing, is Jackrabbit, which is a project at the Apache Software Foundation, http://jackrabbit.apache.org/. Currently, this library allows Perl programmers to develop using the JCR and Jackrabbit, though, theres no reason why connectors cant be written for other implementations, such as Jaceira, CRX, eXoplatform, etc. The JCR library wrappers included are not at all specific to Jackrabbit.
Raptor RDF Parser Toolkit 1.4.19
Open Source C library that provides a set of parsers and serializers for generating Resource Description Framework (RDF) triples more>>
Raptor RDF Parser Toolkit 1.4.19 is a very serviceable software / Open Source C library that provides a set of parsers and serializers generating Resource Description Framework (RDF) triples by parsing syntaxes or serialize the triples into a syntax.
The supported parsing syntaxes are RDF/XML, N-Triples, TRiG, Turtle, RSS tag soup including all versions of RSS, Atom 1.0 and 0.3, GRDDL and microformats for HTML, XHTML and XML and RDFa. The serializing syntaxes are RDF/XML (regular, and abbreviated), Atom 1.0, GraphViz, JSON, N-Triples, RSS 1.0 and XMP.
Raptor was designed to work closely with the Redland RDF library (RDF Parser Toolkit for Redland) but is entirely separate. It is a portable library that works across many POSIX systems (Unix, GNU/Linux, BSDs, OSX, cygwin, win32). Raptor has no memory leaks and is fast.
Major Features:
- Designed to integrate well with Redland
- Parses content on the web if libcurl, libxml2 or BSD libfetch is available.
- Supports all RDF terms including datatyped and XML literals
- Optional features including parsers and serialisers can be selected at configure time.
- Language bindings to Perl, PHP, Python and Ruby when used via Redland
- No memory leaks
- Fast
- Standalone rapper RDF parser utility program
Enhancements:
- Many improvements to RSS tag soup (RSSes and Atom) parser and the RSS 1.0 and Atom serializers
- Several fixes and improvements to the N-Triples, RDFa and RDF/XML parsers and Turtle serializer
- Improved the use and configuration of static libxml functions for better compatibility
- Several Win32 portability fixes - Lou Sakey
- Many internal changes for upcoming Raptor V2 - primarily by Lauri Aalto
- Many other fixes and resilience improvements.
- Fixed:
-
- Fix NFC check for legal combiner sequence
- Error when raptor_new_uri() fails in Turtle parser
- Invalid turtle output syntax on empty integer/double/decimal literals
- Default/atom namespace in atom serializer output
- strstr is called in raptor_parse_chunk() on a buffer string, where it should be called on a null-terminating string.
- RSS serializer fixes for g++
- Fix raptor_sequence_set_at() when setting beyond end
- broken collection abbreviation in turtle serialization
- Fix raptor_sax2_parse_chunk() calling raptor_log_error_to_handlers() with expat raptor_get_feature function does not return feature value
- Fix RDFa parser problem when there is a subject and predicate specified on an element, but no child nodes for the object literal
- Fix performance problems when turtle parsing with lots of namespaces
- Fix RDF/XML Parser problem with legacy ordinal predicates
- Avoid calling xsltSetDefaultSecurityPrefs()
- Fix NFC check for legal combiner sequence
Geography::USStates 0.12
Geography::USStates is a Perl module that allows you to get information on US State names. more>>
SYNOPSIS
use Geography::USStates; # -- just getState* functions use Geography::USStates qw(:areas); # -- just getArea* functions use Geography::USStates qw(:both); # -- just getState*Area* functions use Geography::USStates qw(:both); # -- all functions
# ------ US STATES BASED $state = getState(mn); # -- get the statename Minnesota
$state = getState(wisconsin); # -- get the abbreviation wi
@states = getStateNames(); # -- return all state names
@states = getStateAbbrevs(); # -- return all state abbrevations (AL, AK, ..)
%s = getStates(); # -- return hash $states{MN} = Minnesota
%s = getStates(case=>upper); # -- return hash $states{MN} = MINNESOTA
%s = getStates(case=>lower); # -- return hash $states{MN} = minnesota
%s = getStates(hashkey=>name);# -- return hash $states{Minnesota} = MN
# ------ US AREAS $area = getArea(gu); # -- get the area name Guam
$area = getArea(guam); # -- get the abbreviation gu
@areas = getAreaNames(); # -- return all area names
@areas = getAreaAbbrevs(); # -- return all area abbrevations (DC, GU, ..)
%a = getAreas(); # -- return hash $states{GU} = Guam
%a = getAreas(case=>upper); # -- return hash $states{GU} = GUAM
%a = getAreas(case=>lower); # -- return hash $states{GU} = guam
%a = getAreas(hashkey=>name); # -- return hash $states{Guam} = GU
# ------ Lookup both US States and Dependant areas # -- get the statename Minnesota or Guam respectivily $state = getStateOrArea(mn || gu);
# -- get the abbreviation wi or gu respectivily $state = getStateOrArea(wisconsin || guam);
# -- return all states and areas names together @states = getStatesAndAreasNames();
# -- return all states and areas abbreviations together @states = getStatesAndAreasAbbrevs();
# -- same as getStates() but it returns the areas in the hash too %s = getStatesAndAreas(); %s = getStatesAndAreas(case=>upper); %s = getStatesAndAreas(case=>lower); %s = getStatesAndAreas(hashkey=>name);
Regexp::Common::time 0.01
Regexp::Common::time Perl module contains date and time regexps. more>>
SYNOPSIS
use Regexp::Common qw(time);
# Piecemeal, Time::Format-like patterns
$RE{time}{tf}{-pat => pattern}
# Piecemeal, strftime-like patterns
$RE{time}{strftime}{-pat => pattern}
# Match ISO8601-style date/time strings
$RE{time}{iso}
# Fuzzy date patterns
# YEAR/MONTH/DAY
$RE{time}{ymd} # Most flexible
$RE{time}{YMD} # Strictest (equivalent to y4m2d2)
# Other available patterns: y2md, y4md, y2m2d2, y4m2d2
# MONTH/DAY/YEAR (American style)
$RE{time}{mdy} # Most flexible
$RE{time}{MDY} # Strictest (equivalent to m2d2y4)
# Other available patterns: mdy2, mdy4, m2d2y2, m2d2y4
# DAY/MONTH/YEAR (European style)
$RE{time}{mdy} # Most flexible
$RE{time}{MDY} # Strictest (equivalent to d2m2y4)
# Other available patterns: dmy2, dmy4, d2m2y2, d2m2y4
# Fuzzy time pattern
# HOUR/MINUTE/SECOND
$RE{time}{hms} # H: matches 1 or 2 digits; 12 or 24 hours
# M: matches 2 digits.
# S: matches 2 digits; may be omitted
# May be followed by "a", "am", "p.m.", etc.
This module creates regular expressions that can be used for parsing dates and times. See Regexp::Common for a general description of how to use this interface.
Parsing dates is a dirty business. Dates are generally specified in one of three possible orders: year/month/day, month/day/year, and day/month/year. Years can be specified with four digits or with two digits (with assumptions made about the century). Months can be specified as one digit, two digits, as a spelled-out name, or as a three-letter abbreviation. Day numbers can be one digit or two digits, with limits depending on the month (and, in the case of February, even the year). Also, different people use different punctuation for separating the various elements.
A human can easily recognize that "October 21, 2005" and "21.10.05" refer to the same date, but its tricky to get a program to come to the same conclusion. This module attempts to make it possible to do so, with a minimum of difficulty.
If you know the exact format of the data to be matched, use one of the specific, piecemeal pattern builders: tf or strftime. If there is some variability, use one of the fuzzy-matching patterns in the dmy, mdy, or ymd families. If the data are wildly variable, such as raw user input, give up and use the Date::Manip or Date::Parse module.
Time values are generally much simpler to parse than date values. Only one fuzzy pattern is provided, and it should suffice for most needs.
Geo::StreetAddress::US 0.99
Geo::StreetAddress::US is a Perl extension for parsing US street addresses. more>>
SYNOPSIS
use Geo::StreetAddress::US;
my $hashref = Geo::StreetAddress::US->parse_location(
"1005 Gravenstein Hwy N, Sebastopol CA 95472" );
my $hashref = Geo::StreetAddress::US->parse_location(
"Hollywood & Vine, Los Angeles, CA" );
my $hashref = Geo::StreetAddress::US->parse_address(
"1600 Pennsylvania Ave, Washington, DC" );
my $hashref = Geo::StreetAddress::US->parse_intersection(
"Mission Street at Valencia Street, San Francisco, CA" );
my $normal = Geo::StreetAddress::US->normalize_address( %spec );
# the parse_* methods call this automatically...
Geo::StreetAddress::US is a regex-based street address and street intersection parser for the United States. Its basic goal is to be as forgiving as possible when parsing user-provided address strings.
Geo::StreetAddress::US knows about directional prefixes and suffixes, fractional building numbers, building units, grid-based addresses (such as those used in parts of Utah), 5 and 9 digit ZIP codes, and all of the official USPS abbreviations for street types and state names.
Time::Format 1.02
Time::Format is a Perl module for easy-to-use date/time formatting. more>>
SYNOPSIS
use Time::Format qw(%time %strftime %manip);
$time{$format}
$time{$format, $unixtime}
print "Today is $time{yyyy/mm/dd}n";
print "Yesterday was $time{yyyy/mm/dd, time-24*60*60}n";
print "The time is $time{hh:mm:ss}n";
print "Another time is $time{H:mm am tz, $another_time}n";
print "Timestamp: $time{yyyymmdd.hhmmss.mmm}n";
%time also accepts Date::Manip strings and DateTime objects:
$dm = Date::Manip::ParseDate(last monday);
print "Last monday was $time{Month d, yyyy, $dm}";
$dt = DateTime->new (....);
print "Heres another date: $time{m/d/yy, $dt}";
It also accepts most ISO-8601 date/time strings:
$t = 2005/10/31T17:11:09; # date separator: / or - or .
$t = 2005-10-31 17.11.09; # in-between separator: T or _ or space
$t = 20051031_171109; # time separator: : or .
$t = 20051031171109; # separators may be omitted
$t = 2005/10/31; # date-only is okay
$t = 17:11:09; # time-only is okay
# But not:
$t = 20051031; # date-only without separators
$t = 171109; # time-only without separators
# ...because those look like epoch time numbers.
%strftime works like POSIXs strftime, if you like those %-formats.
$strftime{$format}
$strftime{$format, $unixtime}
$strftime{$format, $sec,$min,$hour, $mday,$mon,$year, $wday,$yday,$isdst}
print "POSIXish: $strftime{%A, %B %d, %Y, 0,0,0,12,11,95,2}n";
print "POSIXish: $strftime{%A, %B %d, %Y, 1054866251}n";
print "POSIXish: $strftime{%A, %B %d, %Y}n"; # current time
%manip works like Date::Manips UnixDate function.
$manip{$format};
$manip{$format, $when};
print "Date::Manip: $manip{%m/%d/%Y}n"; # current time
print "Date::Manip: $manip{%m/%d/%Y,last Tuesday}n";
These can also be used as standalone functions:
use Time::Format qw(time_format time_strftime time_manip);
print "Today is ", time_format(yyyy/mm/dd, $some_time), "n";
print "POSIXish: ", time_strftime(%A %B %d, %Y,$some_time), "n";
print "Date::Manip: ", time_manip(%m/%d/%Y,$some_time), "n";
This module creates global pseudovariables which format dates and times, according to formatting codes you pass to them in strings.
The %time formatting codes are designed to be easy to remember and use, and to take up just as many characters as the output time value whenever possible. For example, the four-digit year code is "yyyy", the three-letter month abbreviation is "Mon".
The nice thing about having a variable-like interface instead of function calls is that the values can be used inside of strings (as well as outside of strings in ordinary expressions). Dates are frequently used within strings (log messages, output, data records, etc.), so having the ability to interpolate them directly is handy.
Perl allows arbitrary expressions within curly braces of a hash, even when that hash is being interpolated into a string. This allows you to do computations on the fly while formatting times and inserting them into strings. See the "yesterday" example above.
The format strings are designed with programmers in mind. What do you need most frequently? 4-digit year, month, day, 24-based hour, minute, second -- usually with leading zeroes. These six are the easiest formats to use and remember in Time::Format: yyyy, mm, dd, hh, mm, ss. Variants on these formats follow a simple and consistent formula. This module is for everyone who is weary of trying to remember strftime(3)s arcane codes, or of endlessly writing $t[4]++; $t[5]+=1900 as you manually format times or dates.
Note that mm (and related codes) are used both for months and minutes. This is a feature. %time resolves the ambiguity by examining other nearby formatting codes. If its in the context of a year or a day, "month" is assumed. If in the context of an hour or a second, "minute" is assumed.
The format strings are not meant to encompass every date/time need ever conceived. But how often do you need the day of the year (strftimes %j) or the week number (strftimes %W)?
For capabilities that %time does not provide, %strftime provides an interface to POSIXs strftime, and %manip provides an interface to the Date::Manip modules UnixDate function.
If the companion module Time::Format_XS is also installed, Time::Format will detect and use it. This will result in a significant speed increase for %time and time_format.
Getopt::ExPar 0.01
Getopt::ExPar contains extended parameters command line parser. more>>
SYNOPSIS
use Getopt::ExPar;
my(@PDT, @MM, %OPT);
ExPar @PDT, @MM, $OPT;
EXPORT
use Getopt::ExPar exports the sub ExPar into your name space.
ExPar is a perl5 module used to parse command line parameters. This package uses the @PDT, Parameter Description Table, and the @MM, Message Module, to return %OPT which is a hash reference containing the command line option data. The function of Getopt::ExPar is based on Getopt::EvaP, created by Stephen O. Lidie.
Introduction
The ExPar function parses a perl command line. Using the option definitions in the @PDT, argument types are checked and the arguments themselves may be checked against a specified range or pattern. By using both @PDT and @MM, several types of help may be retured to the user. ExPar handles command lines with this format:
command [-parameters] [file_list]
where any parameters and file_list are optional.
Parameter Description Table (PDT) Syntax
Here is the PDT syntax. Optional constructs are enclosed in [], and the | character separates possible values in a list.
PDT [program_name, alias]
[parameter_name[, alias]: type [pattern | range] [ = [default_variable,] default_value]]
PDTEND [flag_list]
flag_list is one or more of the following flags: optional_file_list | required_file_list | no_file_list: specifies condition of list of files at end of command line. (only one of these may be specified) abbreviations: allows for abbreviations of commands or aliases as long as enough of the command is given to make it distinguishable from all others. If not, a message is printed so the user may be more specific. switchglomming: allows for multiple single-letter switch options to be specified as single option (must be first option). pdt_warnings: for debugging a @PDT, it prints out messages that are not necessarily errors, like inconsistent number of default values in a list, etc.
The default_variable is an environment variable - see the section Usage Notes for complete details.
So, the simplest possible PDT would be:
PDT
PDTEND
This PDT would simply define a -help switch for the command, but is rather useless.
A typical PDT would look more like this:
PDT frog
number, n: integer = 1
chars, c: string = "default_string"
PDTEND no_file_list
This PDT, for command frog, defines two parameters, number (or n), of type integer with a default value of 1, and chars (or c), of type string with a default value of "default_string". The PDTEND no_file_list indicator indicates that no trailing file_list can appear on the command line. Of course, the -help switch is defined automatically.
Each of these options may be further refined by using a range and a pattern, respectively:
PDT frog
number, n: integer (((#100, the # is implied. Other simple conditions are < and == (a single = is accepted as ==, not an assignment). Ex: This condition: (#>10, #<<less
DataparkSearch 4.52
DataparkSearch Engine is a full-featured open sources web-based search engine released under the GNU General Public License and designed to organize search within a website, group of websites, intranet or local system. more>>
DataparkSearch 4.52 offers users a powerful and functional open sources web-based search engine released under the GNU General Public License and designed to organize search within a website, group of websites, intranet or local system.
DataparkSearch consists of two parts. The first part is indexing mechanism (indexer). Indexer walks over html hypertext references and stores found words and new references into database. The second part is web CGI front-end to provide search using data collected by indexer.
Major Features:
- Support for http, https, ftp, nntp and news URL schemes.
- htdb virtual URL scheme for indexing SQL databases.
- Indexes text/html, text/xml, text/plain, audio/mpeg (mp3) and image/gif mime types natively.
- External parsers support for other document types, including Microsoft Word, Excel, RTF, PowerPoint, Adobe Acrobat PDF and Flash.
- Can index multilingual sites using content negotiation.
- Can search all of the word forms using ispell affixes and dictionaries.
- Synonym, acronym and abbreviation query expansion based on editable dictionaries, specified by language and charset.
- Stop-words, synonyms and acronyms lists.
- Options to query with all words, all words near to each others, any words, or Boolean queries. A subset of VQL (Verity Query Language) is supported.
- Popularity Rank based on a neural network model.
- Results can be sorted by relevancy (using vector calculation), popularity rank as "Goo" (adding weight for incoming links), and "Neo" (neural network model), last modified time, and by "importance" (a combination of relevancy and popularity rank).
- Supports wide range of character sets support with automated character set and language detection.
- Offers an accent insensitive search option.
- Provides phrase segmenting (tokenizing) for Chinese, Japanese, Korean and Thai.
- Includes an indexer and a web CGI front-end, as well as a search module for Apache web server (mod_dpsearch).
- Handles Internationalized Domain Names (IDN).
- Summary Extraction Algorithm automatically sums up each document in several sentences.
- Uses If-Modified-Since for efficient transfer of only changed files.
- Can tweak URLs with session IDs and other weird formats, including some JavaScript link decoding.
- Can perform parallel and multi-threaded indexing for faster updating.
- Flexible update scheduling, including options for checking some sections of a site more frequently.
- Handles basic authentication (user name and password) and cookies.
- Stores a compressed text version of the documents for extracting and viewing.
- Can specify a default character set and language for a server or subdirectory, or a list of possible languages.
- No index tags: , , , Google's special comments , and consider as tags to include/exclude.
- Can specify a content body tag.
- Spell checking for query words with aspell.
- Flexible options and commands to customize search result pages.
- Effective caching gives significant time reduction in search times.
- Query logging stores the query, query parameters and the number of results found.
affixes and dictionaries; Fuzzy searching based on acronyms and abbreviations. Stopwords and synonyms lists; Boolean query language support; Results sorting by relevance, popularity rankGeo::Coder::US 1.00
This will estimate latitude and longitude for any US address. more>>
You can find a live demo of this code at http://geocoder.us/. The demo.cgi script is included in eg/ directory distributed with this module, along with a whole bunch of other goodies. See Geo:Coder:US:Import for how to build your own Geo:Coder:US database.
Consider using a web service to access this geocoder over the Internet, rather than going to all the trouble of building a database yourself. See eg/soap-client.pl, eg/xmlrpc-client.pl, and eg/rest-client.pl for different examples of working clients for the rpc.geocoder.us geocoder web service.
Major Features:
- Geo:Coder:US->geocode( $string )
- Given a string containing a street address or intersection, return a list of specifiers including latitude and longitude for all matching entities in the database. To keep from churning over the entire database, the given address string must contain either a city and state, or a ZIP code (or both), or geocode() will return undef.
- geocode() will attempt to normalize directional prefixes and suffixes, street types, and state abbreviations, as well as substitute TIGER/Line's idea of the "primary street name", if an alternate street name was provided instead.
- If geocode() can parse the address, but not find a match in the database, it will return a hashref containing the parsed and normalized address or intersection, but without the "lat" and "long" keys specifying the location. If geocode() cannot even parse the address, it will return undef. Be sure to check for the existence of "lat" and "long" keys in the hashes returned from geocode() before attempting to use the values! This serves to distinguish between addresses that cannot be found versus addresses that are completely unparseable.
- geocode() attempts to be as forgiving as possible when geocoding an address. If you say "Mission Ave" and all it knows about is "Mission St", then "Mission St" is what you'll get back. If you leave off directional identifiers, geocode() will return address geocoded in all the variants it can find, i.e. both "N Main St" and "S Main St".
- Don't be surprised if geocoding an intersection returns more than one lat/long pair for a single intersection. If one of the streets curves greatly or doglegs even slightly, this will be the likely outcome.
- geocode() is probably the method you want to use. See more in the following section on the structure of the returned address and intersection specifiers.
- Geo:Coder:US->geocode_address( $string )
- Works exactly like geocode(), but only parses addresses.
- Geo:Coder:US->geocode_intersection( $string )
- Works exactly like geocode(), but only parses intersections.
- Geo:Coder:US->filter_ranges( $spec, @candidates )
- Filters a list of address specifiers (presumably from the database) against a query specifier, filtering by prefix, type, suffix, or primary name if possible. Returns a list of matching specifiers. filter_ranges() will ignore a filtering step if it would result in no specifiers being returned. You probably won't need to use this.
- Geo:Coder:US->find_ranges( $address_spec )
- Given a normalized address specifier, return all the address ranges in the database that appear to cover that address. find_ranges() ignores prefix, suffix, and type fields in the specifier for search purposes, and then filters against them ex post facto. The intention for find_ranges() to find the closest match possible in preference to returning nothing. You probably want to use lookup_ranges() instead, which will call find_ranges() for you.
- Geo:Coder:US->lookup_ranges( $address_spec, @ranges )
- Given an address specifier and (optionally) some address ranges from the database, interpolate the street address into the street segment referred to by the address range, and return a latitude and longitude for the given address within each of the given ranges. If @ranges is not given, lookup_ranges() calls find_ranges() with the given address specifier, and uses those returned. You probably want to just use geocode() instead, which also parses an address string and determines whether it's a proper address or an intersection automatically.
- Geo:Coder:US->find_segments( $intersection_spec )
- Given a normalized intersection specifier, find all of the street segments in the database matching the two given streets in the given locale or ZIP code. find_segments() ignores prefix, suffix, and type fields in the specifier for search purposes, and then filters against them ex post facto. The intention for find_segments() to find the closest match possible in preference to returning nothing. You probably want to use lookup_intersection() instead, which will call find_segments() for you.
- Geo:Coder:US->lookup_intersection( $intersection_spec )
- Given an intersection specifier, return all of the intersections in the database between the two streets specified, plus a latitude and longitude for each intersection. You probably want to just use geocode() instead, which also parses an address string and determines whether it's a proper address or an intersection automatically.
Requirements: Perl