that needs regression-based normalization and analysis of spectra of galaxies. perldl An installation of PDL usually comes with an interactive shell known as perldl, which can be used to perform simple calculations without requiring the user to create a Perl program file. A typical session of perldl would look something like the following: perldl> $x = pdl [[1, 2], [3, 4]]; perldl> $y = pdl [[5, 6, 7],[8, 9, 0]]; perldl> $z = $x x $y; perldl> p $z; [ [21 24 7] [47 54 21] ] The commands used in the shell are Perl statements that can be used in a program with PDL module included. x is an overloaded operator for matrix multiplication, and p in the last command is a shortcut for print. Implementation The core of PDL is written in C. Most of the functionality is written in PP, a PDL-specific metalanguage that handles the vectorization of simple C snippets and interfaces them with the Perl host language via Perl's XS compiler. Some modules are written in Fortran, with a C/PP interface layer. Many of the supplied functions are written in PDL itself. PP is available to the user to write C-language extensions to PDL. There is also an Inline module (Inline::Pdlpp) that allows PP function definitions to be inserted directly into a Perl script; the relevant code is low-level compiled and made available as a Perl subroutine. The PDL API uses the basic Perl 5 object-oriented functionality: PDL defines a new type of Perl scalar object (eponymously called a "PDL", or "ndarray") that acts as a Perl scalar, but that contains a conventional typed array of numeric or character values. All of the standard Perl operators are overloaded so that they can be used on PDL objects transparently, and PDLs can be mixed-and-matched with normal Perl scalars. Several hundred object methods for operating on PDLs are supplied by the core modules. See also Comparison of numerical-analysis software List of numerical-analysis software References External links PDL Quick Reference PDL Intro & resources Tutorial lecture on PDL Draft release of the PDL Book for PDL-2.006 Example of PDL usage in the scientific literature Array programming languages Free mathematics software Free science software Numerical programming languages Perl modules