Here want to calculate the variance based on a sample
#!/usr/bin/perl -w
use strict;
open(FH,"$ARGV[0]") or die;
my @temp=<FH>;
close FH;
my $mean = Mean (\@temp);
my $variance = variance(\@temp);
print "$variance\n";
sub sum
{
my ($arrayref) = @_;
my $result;
foreach(@$arrayref) { $result+= $_; }
return $result;
}
sub Mean {
my ($arrayref) = @_;
my $result;
foreach (@$arrayref) { $result += $_ }
return $result / @$arrayref;
}
sub variance
{
return (sum map { ($_ - $mean)**2 } @_) / $#_;
}
The error shows :
Can't use string ("2.47705346386633e+16") as an ARRAY ref while "strict refs" in use at variance_try1.pl line 16.
What it mean