Version 2.0 alpha
``Why is it that we entertain the belief that for every purpose odd numbers are the most effectual?'' - Pliny the Elder.
Karl Glazebrook, AAO, 28/11/1996. [kgb@aaoepp.aao.gov.au]
However with the development of Perl v5, Perl acquired 'Objects'. To put it simply users can define their own special data types, and write custom routines to manipulate them either in low level languages (C and Fortran) or in Perl itself.
This has been fully exploited by the PerlDL developers. 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 fundamental 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.
As well as the PDL modules, that can be used by normal perl programs, PerlDL comes with a command line perl shell, called 'perldl', which supports command line editing. In combination with the various PDL graphics modules this allows data to be easily played with and visualised.