It's a library for doing evolutionary computation in Perl.
Algorithm::Evolutionary was formerly called OPEAL, which is an acronym for
Obvious Pearl Evolutionary Algorithm Library.
The design principles of Algorithm::Evolutionary are:
* It should be easy to program any kind of evolutionary algorithm; all
chromosome representations and operators are possible.
* An XML dialect called EvoSpec is used as a language for description of
algorithms and for representation of the state of an algorithm. This
could make Algorithm::Evolutionary interoperable with other EA libraries,
such as EO or JEO.
This package lets you create an array which will allow only one occurrence of
any value.
In other words no matter how many times you put in 42 it will keep only the
first occurrence and the rest will be dropped.
You use the module via tie and once you tied your array to this module it will
behave correctly.
Uniqueness is checked with the 'eq' operator so among other things it is case
sensitive.
As a side effect the module does not allow undef as a value in the array.
This module provides a way of abstracting away persistence of array and hash
variables.
It's useful for quick hacks when you don't care about pulling in the right DBM
library and calling tie and so on. Its job is to reduce fuss for the lazy
programmer at the cost of flexibility.
It uses MLDBM, so you can use complex data structures in your arrays and
hashes. It uses AnyDBM_File, so if you really care about which DBM you get, you
can modify AnyDBM_File::ISA in a BEGIN block after loading this module.
This module uses the backend of CPANPLUS to run tests on modules recently
uploaded to CPAN and post results to the CPAN Testers list.
It will create a database file in the .cpanplus directory, which it uses
to track tested distributions. This information will be used to keep from
posting multiple reports for the same module, and to keep from testing
modules that use non-passing modules as prerequisites.
If it is given multiple versions of the same distribution to test, it will
test the most recent version only. If that version fails, then it will test
a previous version.
By default it uses CPANPLUS configuration settings.
Certain applications like to defer the decision to use a particular
module till runtime. This is possible in perl, and is a useful trick in
situations where the type of data is not known at compile time and the
application doesn't wish to pre-compile modules to handle all types of
data it can work with. Loading modules at runtime can also provide
flexible interfaces for perl modules. Modules can let the programmer
decide what modules will be used by it instead of hard-coding their
names.
Class::Generate is a Perl5 module to simplify creating class
hierarchies. It offers typed or untyped scalar, array, and hash
members, required members, private members, methods (both
instance and class), and other common features of object-
oriented software development. Of course, you can implement all
these things without a special module, but doing it via
Class::Generate is much, much more concise. And furthermore,
it's much less error prone: if you are using Perl's -w flag,
Class::Generate will catch many class specification and usage
errors.
require EXPR only accepts Class/Name.pm style module names, not Class::Name.
How frustrating! For that, we provide load_class 'Class::Name'.
It's often useful to test whether a module can be loaded, instead of throwing
an error when it's not available. For that, we provide try_load_class
'Class::Name'.
Finally, sometimes we need to know whether a particular class has been loaded.
Asking %INC is an option, but that will miss inner packages and any class for
which the filename does not correspond to the package name. For that,
we provide is_class_loaded 'Class::Name'.
Daemon::Control provides a library for creating init scripts in perl. Your perl
script just needs to set the accessors for what and how you want something to
run and the library takes care of the rest.
You can launch programs through the shell (/usr/sbin/my_program) or launch Perl
code itself into a daemon mode. Single and double fork methods are supported and
in double-fork mode all the things you would expect like reopening
STDOUT/STDERR, switching UID/GID are supported.
There are two modules in this distribution. Date::Doomsday calculates
doomsday for a particular year. Date::DayOfWeek uses the doomsday
algorithm to calculate the day of the week for any given date.
Doomsday is a cute little idea invented by Dr John Conway that makes it
very easy to figure out the day of the week for any date.
For more information about the origins and mathematics surrounding
doomsday, see the following web sites:
http://rudy.ca/doomsday.html
http://quasar.as.utexas.edu/BillInfo/doomsday.html
http://www.cst.cmich.edu/users/graha1sw/Pub/Doomsday/Doomsday.html
The purpose of this library was to replace our dependence on Unix epoch time,
which, being limited to a range of about 1970 to 2030, is inadequate for our
purposes (we have data as old as 1870). This date library effectively handles
dates from A.D. 1000 to infinity, and would probably work all the way back to 0
(ignoring, of course, the switch-over to the Gregorian calendar). The useful
features of Unix epoch time (ease of date difference calculation and date
comparison, strict ordering) are preserved, and elements such as
human-legibility are added. The library handles fractional seconds and some
date/time manipulations used for the Global Positioning Satellite system.