Paradigm | Array |
---|---|
Developer | Karl Glazebrook, Jarle Brinchmann, Tuomas Lukka, and Christian Soeller |
First appeared | 1996 |
Stable release |
2.017 / 8 October 2016
|
OS | Cross-platform |
License | GNU General Public License, Artistic License |
Website | pdl |
Influenced by | |
APL, IDL, Perl |
Perl Data Language (abbreviated PDL) is a set of free software array programming extensions to the Perl programming language. PDL extends the data structures built into Perl, to include large multidimensional arrays, and adds functionality to manipulate those arrays as vector objects. It also provides tools for image processing, computer modeling of physical systems, and graphical plotting and presentation. Simple operations are automatically vectorized across complete arrays, and higher-dimensional operations (such as matrix multiplication) are supported. On a computer with both Perl and PDL installed, any Perl script can use the PDL functionality by declaring "use PDL;".
PDL is a vectorized array programming language: the expression syntax is a variation on standard mathematical vector notation, so that the user can combine and operate on large arrays with simple expressions. In this respect, PDL follows in the footsteps of the APL programming language, and it has been compared to commercial languages such as MATLAB and Interactive Data Language, and to other free languages such as NumPy and Octave. Unlike MATLAB and IDL, PDL allows great flexibility in indexing and vectorization: for example, if a subroutine normally operates on a 2-D matrix array, passing it a 3-D data cube will generally cause the same operation to happen to each 2-D layer of the cube.
PDL borrows from Perl at least three basic types of program structure: imperative programming, functional programming, and pipeline programming forms may be combined. Subroutines may be loaded either via a built-in autoload mechanism or via the usual Perl module mechanism. PDL-like functionality is being included in the development of Perl 6.