Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Statistics modules in Perl Data Language, with a quick-start guide for non-PDL people. They make the PDL shell work like R, but with PDL threading (fast automatic iteration) of procedures including t-test, linear regression, and k-means clustering.
Puppet Perl Pure Data
Branch: master



This is a collection of statistics modules in Perl Data Language, with a quick-start guide for non-PDL people.

They make perldl--the simple shell for PDL--work like a teenie weenie R, but with PDL threading--"the fast (and automagic) vectorised iteration of 'elementary operations' over arbitrary slices of multidimensional data"--on procedures including t-test, ordinary least squares regression, and kmeans.

Of course, they also work in perl scripts.


    Perl Data Language. Preferably installed with a Fortran compiler. A few methods (logistic regression and all plotting methods) will only work with a Fortran compiler and some methods (ordinary least squares regression and pca) work much faster with a Fortran compiler.

    The recommended PDL version is 2.4.8. PDL-2.4.7 introduced a bug in lu_decomp() which caused a few functions in PDL::Stats::GLM to fail. Otherwise the minimum compatible PDL version is 2.4.4.

GSL (Optional)
    GNU Scientific Library. This is required by PDL::Stats::Distr and PDL::GSL::CDF, the latter of which provides p-values for PDL::Stats::GLM. GSL is otherwise NOT required for the core PDL::Stats modules to work, ie Basic, Kmeans, and GLM.

PGPLOT (Optional)

    PDL-Stats currently uses PGPLOT for plotting. There are three pgplot/PGPLOT modules, which cause much confusion upon installation. First there is the pgplot Fortran library. Then there is the perl PGPLOT module, which is the perl interface to pgplot. Finally there is PDL::Graphics::PGPLOT, which depends on pgplot and PGPLOT, that PDL-Stats uses for plotting.


For standard perl module installation in *nix environment form source, to install all included modules, extract the files from the archive by entering this at a shell,

    tar xvf PDL-Stats-xxx.tar.gz

then change to the PDL-Stats directory,

    cd PDL-Stats-xxx

and run the following commands:

    perl Makefile.PL
    make test
    sudo make install

If you don't have permission to run sudo, you can specify an alternative path,

    perl Makefile.PL PREFIX=/home/user/my_perl_lib
    make test
    make install

then add /home/user/my_perl_lib to your PERL5LIB environment variable.

If you have trouble installing PDL, you can look for help at the PDL wiki or PDL mailing list.

Thanks to Sisyphus, Windows users can download and install the ppm version of PDL-Stats and all dependencies using the PPM utility included in ActiveState perl or Strawberry perl. You can also get the PPM utility from CPAN.

    ppm install
    ppm install
    ppm install


After installing, you can find documentation for the modules with the
perldoc command.

    perldoc PDL::Stats
    perldoc PDL::Stats::Basic


You can also look for information at:


    Search CPAN

    Mailing list

If you notice a bug or have a request, please submit a report at

If you would like to help develop or maintain the package, please email me at the address below.

~~~~~~~~~~~~ ~~~~~ ~~~~~~~~ ~~~~~ ~~~ `` ><(((">

Copyright (C) 2009-2012 Maggie J. Xiong  <maggiexyz>

All rights reserved. There is no warranty. You are allowed to redistribute this software / documentation as described in the file COPYING in the PDL distribution.
Something went wrong with that request. Please try again.