INTRO(1) User Contributed Perl Documentation INTRO(1)
NAME
PDL::Intro - Introduction to the Perl Data Language
Version 2.4
"Why is it that we entertain the belief that for every purpose odd numbers are the most
effectual?" - Pliny the Elder.
Karl Glazebrook [karlglazebrook AT yahoo.com] and Craig DeForest [deforest AT boulder.edu
DESCRIPTION
Perl Data Language (PDL) is a perl extension that is designed for scientific and bulk
numeric data processing and display. It extends perl’s syntax and includes fully vector-
ized, multidimensional array handling, plus several paths for device-independent graphics
output.
Because PDL is a modular extension to perl, it is accessible to ordinary perl scripts: to
write a command-line PDL script you just say "use PDL;" at the top of an ordinary perl
script. There is also a specialized interactive shell (perldl(1)) that allows you to
issue PDL commands interactively and that includes a path-based subroutine autoloader sim-
ilar to those found in MatLab and IDL (which are trademarks of MathWorks and Kodak,
respectively). The perldl shell allows you to quickly manipulate and "play with" your
data.
The "PDL" module is a complete Object-Oriented extension to Perl (although you don’t have
to know what an object is to use it) which allows large N-dimensional data sets, such as
large images, spectra, time series, etc to be stored efficiently and manipulated en masse.
For example with the PDL module we can write the perl code "$a=$b+$c", where $b and $c are
large datasets (e.g. 2048x2048 images), and get the result in only a fraction of a second.
PDL variables (or piddles as they have come to be known) support a wide range of fundamen-
tal data types - arrays can be bytes, short integers (signed or unsigned), long integers,
floats or double precision floats. And because of the Object-Oriented nature of PDL new
customised datatypes can be derived from them.
Perl is an extremely good and versatile scripting language, well suited to beginners, and
allows rapid prototyping. The PDL extensions to the language use Perl’s object-oriented
capabilities to seamlessly add high-speed scientific capabilities that are themselves
written in perl, C and/or FORTRAN as appropriate -- so your code’s "hot spots" run at
native compiled-language speed, while you work in the higher level perl language (which
itself runs faster than many other JIT-compiled or interpreted languages).
External modules that have been incorporated into PDL include complete Gnu Scientific
Library; CFITSIO for FITS file handling; FFTW; the Slatec matrix-handling package; and the
PGPLOT, PLPLOT, Karma, and OpenGL graphics libraries. Ancillary packages written in PDL
itself include image handling, curve fitting, matrix manipulation, coordinate transforma-
tion, nonlinear data resampling, graphics I/O, and extensive file I/O utilities. Because
PDL programs are "just" perl with additional modules loaded, the entire CPAN archive is
also available to your PDL scripts.
SYNOPSIS
This manual page provides a general introduction to the underlying philosophy of PDL. For
an overview over the rest of the documentation see PDL::Index. As a beginner the following
documents are particulary recommended:
PDL::Impatient
Quick summary - PDL for the impatient
PDL::FAQ
The Frequently Asked Questions list for PDL.
PDL::Philosophy
Why another matrix language?
PDL::Indexing
An introduction to using smart indices in PDL.
PDL::NiceSlice
The all important slicing of piddles.
AUTHOR
Copyright (C) Karl Glazebrook (karlglazebrook AT yahoo.com), Tuomas J. Lukka,
(lukka AT husc.edu) and Christian Soeller (c.soeller AT auckland.nz) 1997-2002.
Commercial reproduction of this documentation in a different format is forbidden without
permission.
perl v5.8.3 2003-05-21 INTRO(1)
Generated by $Id: phpMan.php,v 4.54 2007/08/21 09:05:22 chedong Exp $ Author: Che Dong
On Apache/1.3.33 (Unix) PHP/4.3.10
Under GNU General Public License
2008-08-28 13:12 @38.103.63.61 CrawledBy CCBot/1.0 (+http://www.commoncrawl.org/bot.html)