Statistics::Lite(3) Small stats stuff.


use Statistics::Lite qw(:all);
$min= min @data;
$mean= mean @data;
%data= statshash @data;
print "sum= $data{sum} stddev= $data{stddev}\n";
print statsinfo(@data);


This module is a lightweight, functional alternative to larger, more complete, object-oriented statistics packages. As such, it is likely to be better suited, in general, to smaller data sets.

This is also a module for dilettantes.

When you just want something to give some very basic, high-school-level statistical values, without having to set up and populate an object first, this module may be useful.


This module implements standard deviation and variance calculated by both the unbiased and biased estimators.


"min(@data)", "max(@data)", "range(@data)", "sum(@data)", "count(@data)"
Returns the minimum value, maximum value, range (max - min), sum, or count of values in @data. Undefined values are ignored.

"count(@data)" simply returns "scalar(@data)".

Please note that this module does not ignore undefined values in your data; instead, those are treated as zero.

"mean(@data)", "median(@data)", "mode(@data)"
Calculates the mean, median, or mode average of the values in @data. Undefined values are ignored. (In the event of ties in the mode average, their mean is returned.)
"variance(@data)", "stddev(@data)"
Returns the standard deviation or variance of @data for a sample (same as Excel's STDEV). This is also called the Unbiased Sample Variance and involves dividing the sample's squared deviations by N-1 (the sample count minus 1). The standard deviation is just the square root of the variance.
"variancep(@data)", "stddevp(@data)"
Returns the standard deviation or variance of @data for the population (same as Excel's STDEVP). This involves dividing the squared deviations of the population by N (the population size). The standard deviation is just the square root of the variance.
Returns a hash whose keys are the names of all the functions listed above, with the corresponding values, calculated for the data set.
Returns a string describing the data set, using the values detailed above.
Returns a hash. The keys are the distinct values in the data set, and the values are the number of times that value occurred in the data set.

Import Tags

The ":all" import tag imports all exportable functions from this module into the current namespace (use with caution). More specifically, these functions are the following: "min", "max", "range", "sum", "count", "mean", "median", "mode", "variance", "stddev", "variancep", "stddevp", "statshash", "statsinfo", and "frequencies".

To import the statistical functions, use the import tag ":funcs". This imports all of the above-mentioned functions, except for "statshash", "statsinfo", and "frequencies".

Use ":stats" to import "statshash(@data)" and "statsinfo(@data)".


Brian Lalonde <[email protected]>, "stddev(@data)", "stddevp(@data)", "variance(@data)", "variancep(@data)", additional motivation by Nathan Haigh, with kind support from Alexander Zangerl.

The project lives at


Copyright 2000 Brian Lalonde <[email protected]>, Nathan Haigh, Alexander Zangerl, and Ton Voon.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.