use List::Util 'sum'; sub sample_sd { die unless @_ and ref $_[ 0 ] eq 'ARRAY' and @{ $_[ 0 ] } > 1; my $data = shift; my $sum = sum @$data; my $sum2 = sum map $_*$_, @$data; my $n = @$data; return sqrt( ( $sum2 - (( $sum*$sum )/$n) )/($n-1) ); }