Let's find the standard deviation

I will explain how to find the standard deviation using a Perl program.

Find the standard deviation

Consider the following array.

my @array = (10, 50, 60, 65, 70, 90);

Sample program to find the standard deviation of an array

Actually find the standard deviation from the array. The Statistics::Lite module has a stddev function, but I won't use it in this example.

I will not explain how to calculate the standard deviation.

use strict;
use warnings;

sub get_stddev {
  return sqrt(get_disp(@_));
}

sub get_disp {
  my ($array_ref) = @_;
  my $mean = get_avg($array_ref);
  my $count = @$array_ref;
  my $sum = 0;
  
  for my $num (@$array_ref) {
      $sum += (($num - $mean) ** 2);
  }
  return $sum / $count;
}

sub get_avg {
  my ($array_ref) = @_;
  my $count = @$array_ref;
  my $sum = 0;
  for my $num (@$array_ref) {
      $sum += $num;
  }
  return $sum / $count;
}

my @array = (10, 50, 60, 65, 70, 90);
my $stddev = get_stddev(\@array);
print "Standard deviation is " . $stddev . "\n";

Execution result

The standard deviation is 24.452334585202.

You can copy and paste this program and try it immediately at PerlBanjo.

Associated Information