sub sum { reduce { $a + $b } 0, @_; } sub avg { return undef unless @_; # avoid division by 0 sum (@_)/scalar @_; } sub variance { return undef unless @_; # avoid division by 0 my $avg = avg (@_); sum ( map {($_ - $avg)**2} @_ )/ scalar @_; } sub std_dev { sqrt variance (@_); }